The number of processes seems to be wrong in VE

From OpenVZ Virtuozzo Containers Wiki
Jump to: navigation, search

Problem[edit]

Quite a few people complain at the forum that vzlist command outputs wrong proccess number (e.g. http://forum.openvz.org/index.php?t=tree&goto=12664&#msg_12664). Look:

[root@HN ~] # vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME
1001 63 running xx.yy.136.88 promo.HN.com
1002 12 running xx.yy.138.6 video.HN.com
1003 24 running xx.yy.136.86 db.HN.com

[root@HN ~] # vzctl exec 1001 ps aux | wc -l
13
[root@HN ~] # vzctl exec 1002 ps aux | wc -l
14
[root@HN ~] # vzctl exec 1003 ps aux | wc -l
17

As you see, the number is false for container 1001 and 1003, but is correct for container 1002 (14 = 12 + 1 (wc command) + 1 (ps command)).

Disclosure[edit]

The thing is that ps aux command outputs only "full-fledged" processes, but not threads. And `vzlist` command counts all processes in container including threads. ps -eLf command allows you to see all processes:

[root@HN ~] # vzctl exec 1001 ps -eLf | wc -l
65
[root@HN ~] # vzctl exec 1002 ps -eLf | wc -l
14
[root@HN ~] # vzctl exec 1003 ps -eLf | wc -l
26

Now the outputs suite each other.