Weird memory numbers [message #20194] |
Thu, 13 September 2007 08:03 |
dagr
Messages: 83 Registered: February 2006
|
Member |
|
|
I made expirement to understand whether i can see how much memory exactly my vps consumes
I installed apache and run it with 100 start processes (prefork mpm model)
[[email]root@vps-10811[/email] conf]# ps -eo "sz,size,rss,vsize,pid,cmd" | grep httpd| wc -l
102
[[email]root@vps-10811[/email] conf]# ps -eo "sz,size,rss,vsize,pid,cmd" | grep httpd
1451 1244 2520 5804 30193 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2136 5936 32109 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2136 5936 32110 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2136 5936 32111 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32112 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32113 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32114 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32115 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32116 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32117 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2144 5936 32118 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32119 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32120 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32121 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32122 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32123 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32124 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32125 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32126 /vps_core/apache-2.2.3/bin/httpd -k start
1484 1376 2140 5936 32127 /vps_core/apache-2.2.3/bin/httpd -k start
.................
1451 1244 1720 5804 32217 /vps_core/apache-2.2.3/bin/httpd -k start
1451 1244 1720 5804 32219 /vps_core/apache-2.2.3/bin/httpd -k start
395 160 520 1580 5144 grep httpd
ps shows memory usage in tricky way , so i checked it by pmap
[[email]root@vps-10811[/email] conf]# pmap -d 32217
.........................
mapped: 5808K writeable/private: 1428K shared: 48K
writeable/private: 1428K - is the minimum memory which process uses and doesnt share.
Its close to size 1451K from ps in our case . Ie 100x1458 = 150 Mb
Now lets see what beancounters give us
[[email]root@vps-10811[/email] conf]# cat /proc/user_beancounters
Version: 2.5
uid resource held maxheld barrier limit failcnt
10811: kmemsize 11638464 13987632 20752512 29036012 0
lockedpages 0 0 32 32 0
privvmpages 24687 27632 600000 700000 0
shmpages 652 661 249152 249152 0
dummy 0 0 0 0 0
numproc 110 119 200 200 0
physpages 7099 7854 0 2147483647 0
vmguarpages 0 0 60000 2147483647 0
oomguarpages 7099 7854 60000 2147483647 0
numtcpsock 6 174 300 300 0
numflock 3 4 100 110 0
numpty 1 1 16 16 0
numsiginfo 0 101 256 256 0
tcpsndbuf 51428 206412 1319488 2524288 0
tcprcvbuf 84888 942160 1319488 2524288 0
othersockbuf 2236 9800 5036896 5536896 0
dgramrcvbuf 0 13980 232096 500000 0
numothersock 4 9 100 100 0
dcachesize 0 0 1800000 2000000 0
numfile 1087 1398 4048 4048 0
dummy 0 0 0 0 0
Both privvmpages (~100Mb) and oomguarpages(~28Mb) show me numbers far from expected. Im pretty sure about pmap method , so whats the trick ?
( 2.6.9-023stab044.4-enterprise , vzctl-3.0.13-1 )
[Updated on: Thu, 13 September 2007 08:05] Report message to a moderator
|
|
|
|
|
|
Re: Weird memory numbers [message #20203 is a reply to message #20198] |
Thu, 13 September 2007 09:21 |
dagr
Messages: 83 Registered: February 2006
|
Member |
|
|
4. So the only thing to understand left: why privvmpages << "writeable/private" * 100, correct?
Yes
1. MPM prefork implies simple forking just like in Apache 1.3 - no threads at all.
tgid - you mean gid ?
[root@vps-10811 extra]# ps -eo "sz,size,rss,vsize,pid,gid,ppid,cmd" | grep httpd
1452 1248 2488 5808 25791 0 1 /vps_core/apache-2.2.3/bin/httpd -k start
1485 1380 1704 5940 30233 2 25791 /vps_core/apache-2.2.3/bin/httpd -k start
1485 1380 1700 5940 30234 2 25791 /vps_core/apache-2.2.3/bin/httpd -k start
group 2 - daemon
2.
[root@vps-10811 extra]# pmap -d 30233
30233: /vps_core/apache-2.2.3/bin/httpd -k start
Address Kbytes Mode Offset Device Mapping
00111000 56 r-x-- 0000000000000000 007:0000f libpthread-2.3.4.so
0011f000 4 r---- 000000000000d000 007:0000f libpthread-2.3.4.so
00120000 4 rw--- 000000000000e000 007:0000f libpthread-2.3.4.so
00121000 8 rw--- 0000000000121000 000:00000 [ anon ]
00123000 76 r-x-- 0000000000000000 007:0000f libgssapi_krb5.so.2.2
00136000 4 rw--- 0000000000013000 007:0000f libgssapi_krb5.so.2.2
00137000 60 r-x-- 0000000000000000 007:0000f libresolv-2.3.4.so
00146000 4 r---- 000000000000f000 007:0000f libresolv-2.3.4.so
00147000 4 rw--- 0000000000010000 007:0000f libresolv-2.3.4.so
00148000 8 rw--- 0000000000148000 000:00000 [ anon ]
001fc000 36 r-x-- 0000000000000000 007:0000f libnss_files-2.3.4.so
00205000 4 r---- 0000000000008000 007:0000f libnss_files-2.3.4.so
00206000 4 rw--- 0000000000009000 007:0000f libnss_files-2.3.4.so
00229000 8 r-x-- 0000000000000000 007:0000f libuuid.so.1.2
0022b000 4 rw--- 0000000000001000 007:0000f libuuid.so.1.2
002c5000 60 r-x-- 0000000000000000 007:0000f libz.so.1.2.1.2
002d4000 4 rw--- 000000000000e000 007:0000f libz.so.1.2.1.2
002f5000 76 r-x-- 0000000000000000 0fd:00000 libaprutil-1.so.0.2.7
00308000 4 rw--- 0000000000012000 0fd:00000 libaprutil-1.so.0.2.7
00319000 84 r-x-- 0000000000000000 007:0000f ld-2.3.4.so
0032e000 4 r---- 0000000000015000 007:0000f ld-2.3.4.so
0032f000 4 rw--- 0000000000016000 007:0000f ld-2.3.4.so
00349000 100 r-x-- 0000000000000000 0fd:00000 libexpat.so.0.1.0
00362000 8 rw--- 0000000000019000 0fd:00000 libexpat.so.0.1.0
00385000 124 r-x-- 0000000000000000 0fd:00000 libapr-1.so.0.2.7
003a4000 4 rw--- 000000000001f000 0fd:00000 libapr-1.so.0.2.7
003a9000 132 r-x-- 0000000000000000 007:0000f libm-2.3.4.so
003ca000 4 r---- 0000000000020000 007:0000f libm-2.3.4.so
003cb000 4 rw--- 0000000000021000 007:0000f libm-2.3.4.so
003e9000 32 r-x-- 0000000000000000 007:0000f librt-2.3.4.so
003f1000 4 r---- 0000000000007000 007:0000f librt-2.3.4.so
003f2000 4 rw--- 0000000000008000 007:0000f librt-2.3.4.so
003f3000 40 rw--- 00000000003f3000 000:00000 [ anon ]
00475000 196 r-x-- 0000000000000000 007:0000f libssl.so.0.9.7a
004a6000 12 rw--- 0000000000031000 007:0000f libssl.so.0.9.7a
004a9000 1172 r-x-- 0000000000000000 007:0000f libc-2.3.4.so
005ce000 8 r---- 0000000000124000 007:0000f libc-2.3.4.so
005d0000 8 rw--- 0000000000126000 007:0000f libc-2.3.4.so
005d2000 8 rw--- 00000000005d2000 000:00000 [ anon ]
0097f000 128 r-x-- 0000000000000000 007:0000f libk5crypto.so.3.0
0099f000 4 rw--- 0000000000020000 007:0000f libk5crypto.so.3.0
009a3000 396 r-x-- 0000000000000000 007:0000f libkrb5.so.3.2
00a06000 8 rw--- 0000000000063000 007:0000f libkrb5.so.3.2
00b87000 8 r-x-- 0000000000000000 007:0000f libcom_err.so.2.1
00b89000 4 rw--- 0000000000001000 007:0000f libcom_err.so.2.1
00bf4000 8 r-x-- 0000000000000000 007:0000f libdl-2.3.4.so
00bf6000 4 r---- 0000000000001000 007:0000f libdl-2.3.4.so
00bf7000 4 rw--- 0000000000002000 007:0000f libdl-2.3.4.so
00cf1000 848 r-x-- 0000000000000000 007:0000f libcrypto.so.0.9.7a
00dc5000 72 rw--- 00000000000d4000 007:0000f libcrypto.so.0.9.7a
00dd7000 12 rw--- 0000000000dd7000 000:00000 [ anon ]
00f15000 20 r-x-- 0000000000000000 007:0000f libcrypt-2.3.4.so
00f1a000 4 r---- 0000000000004000 007:0000f libcrypt-2.3.4.so
00f1b000 4 rw--- 0000000000005000 007:0000f libcrypt-2.3.4.so
00f1c000 156 rw--- 0000000000f1c000 000:00000 [ anon ]
08048000 668 r-x-- 0000000000000000 0fd:00000 httpd
080ef000 16 rw--- 00000000000a6000 0fd:00000 httpd
080f3000 20 rw--- 00000000080f3000 000:00000 [ anon ]
09520000 1080 rw--- 0000000009520000 000:00000 [ anon ]
b7fc2000 48 rw-s- 0000000000000000 000:00033 [ anon ]
b7fce000 20 rw--- 00000000b7fce000 000:00000 [ anon ]
bfff7000 28 rw--- 00000000bfff7000 000:00000 [ stack ]
ffffe000 4 ----- 0000000000000000 000:00000 [ anon ]
mapped: 5944K writeable/private: 1564K shared: 48K
3. So you say that real consumption is oomguarpages. May be oomguarpages << privmpages when processes idle or processing same document - in other words, in docs you call privmpages some kind of memusage prediction. So in what case apache will consume privmpages which i see now?
|
|
|
|
|
|
Re: Weird memory numbers [message #20503 is a reply to message #20194] |
Wed, 19 September 2007 10:03 |
xemul
Messages: 248 Registered: November 2005
|
Senior Member |
|
|
Please, check with "ps -o pid,tid,comm" that all the http processes are not threads (I didn't notice whether you did this).
If they are threads, then the answer is: pmap can't handle this at all.
Otherwise, could you please create a tarball with this VE and let us download it?
Thanks,
Pavel
[Updated on: Wed, 19 September 2007 10:03] Report message to a moderator
|
|
|
|
|
|
|