[lxc-users] Bug bug bug

Guido Jäkel G.Jaekel at DNB.DE
Sat Nov 8 10:23:36 UTC 2014


Hi,

googleing for  pthread_join  leads to  http://www.ibm.com/developerworks/library/l-memory-leaks/  , an article about memory consumption of POSIX threads (and potential leaks if rejoin fails).

>From this, you can see that every thread needs at least memory for the stack. It is said that the default may be 10MB. And if you want to start 50 instances of Asterix, this will lead to 50*n+10MB = n*0.5G stack size, where n is the number of threads this quoted 'taskprocessor' will try to start.

Maybe you need at least more virtual memory to satisfy this requirements (e.g. http://stackoverflow.com/questions/344203/maximum-number-of-threads-per-process-in-linux). It seems that you have 19G swap for your ~180GB RAM machine. Maybe you need more even it will be unused. For a quick test, you may consider to use some file (instead of a partition) as additional swapspace and you may assign a lower priority to it. Or maybe you just have to adjust some 'ulimits'.

Guido


On 08.11.2014 03:36, CDR wrote:
> There is something very wrong with LXC in general, it does not matter the
> OS or even the kernel version. My OS is Ubuntu 14.04.
> I have a Centos 6.6 container with mysql and 50 instances of Asterisk 12.0,
> plus opensips.
> The memory is limited to 100G, but it does not matter if I limit it or not.
> It crashes when I start the 50 Asterisk processes.
> ​ The err​or message is below.
> 
> MySql starts fine and uses large-pages, memlocked. It uses 60G, so there is
> plenty of available memory left.
> 
>  free -g
>              total       used       free     shared    buffers     cached
> Mem:           177        163         13          0          0         97
> -/+ buffers/cache:         66        110
> Swap:           19          0         19
> 
> ​​
> 
> 
> ​I tried the same ​container in Fedora 21 and the outcome is identical, and
> it matters not if the technology is plain lxc or libvirt-lxc.
> 
> This is my containers config:
>  lxc.mount.entry = proc proc proc nodev,noexec,nosuid 0 0
> lxc.mount.entry = sysfs sys sysfs defaults  0 0
> 
> 
> lxc.tty = 4
> lxc.pts = 1024
> lxc.cgroup.devices.deny = a
> lxc.cgroup.devices.allow = c 1:3 rwm
> lxc.cgroup.devices.allow = c 1:5 rwm
> lxc.cgroup.devices.allow = c 5:1 rwm
> lxc.cgroup.devices.allow = c 5:0 rwm
> lxc.cgroup.devices.allow = c 4:0 rwm
> lxc.cgroup.devices.allow = c 4:1 rwm
> lxc.cgroup.devices.allow = c 1:9 rwm
> lxc.cgroup.devices.allow = c 1:8 rwm
> lxc.cgroup.devices.allow = c 136:* rwm
> lxc.cgroup.devices.allow = c 5:2 rwm
> lxc.cgroup.devices.allow = c 254:0 rwm
> lxc.cgroup.devices.allow = c 10:137 rwm # loop-control
> lxc.cgroup.devices.allow = b 7:* rwm    # loop*
> lxc.cgroup.memory.limit_in_bytes =  107374182400
> lxc.mount.auto = cgroup
> 
> lxc.utsname = parallelu
> lxc.autodev = 1
> lxc.aa_profile = unconfined
> 
> lxc.network.type=macvlan
> lxc.network.macvlan.mode=bridge
> lxc.network.link=eth1
> lxc.network.name = eth0
> lxc.network.flags = up
> lxc.network.hwaddr = 00:c8:a0:7d:84:cf
> lxc.network.ipv4 = 0.0.0.0/25
> 
> 
> 
> Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 2ad8515c-c1eb-46ab-b53a-d63c84a56192
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1205]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 1fe67cd3-b65f-491a-aa59-a089dcba26a5
> [Nov  7 21:12:05] ERROR[1205]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1562]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 34d41f19-2936-4e0a-a626-ceb386ff3a1f
> [Nov  7 21:12:05] ERROR[1562]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1562]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 204873a6-b595-4e82-ae02-0b2a3ee37fdc
> [Nov  7 21:12:05] ERROR[1562]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 7711ffdc-57c6-48e2-8f43-3fe4b396c405
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:614
> __allocate_taskprocessor: Unable to start taskprocessor listener for
> taskprocessor 3eed34af-a070-4c8b-96ee-c9e1f92756c8
> [Nov  7 21:12:05] ERROR[1480]: taskprocessor.c:245
> default_listener_shutdown: pthread_join(): Cannot allocate memory
> 
> 
> 
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users
> 



More information about the lxc-users mailing list