Я пытался измерить, сколько памяти приложение использует в текущий момент.
Итак, мы идем, free -k -t
:
[user@server ~]$ free -k -t
total used free shared buffers cached
Mem: 1026076 581880 444196 0 158656 269704
-/+ buffers/cache: 153520 872556
Swap: 0 0 0
Total: 1026076 581880 444196
Затем pmap -x PID хотел проверить:
[user@server ~]$ pmap -x 18503
18503: /usr/bin/java -jar /home/user/app.jar mycfg.cfg
Address Kbytes RSS Dirty Mode Mapping
0000000040000000 36 36 0 r-x-- java
0000000040108000 8 8 8 rwx-- java
00000000403d9000 4 0 0 ----- [ anon ]
00000000403da000 1024 12 12 rwx-- [ anon ]
000000004055b000 12 0 0 ----- [ anon ]
000000004055e000 1016 72 72 rwx-- [ anon ]
000000004065c000 12 0 0 ----- [ anon ]
000000004065f000 1016 72 72 rwx-- [ anon ]
00000000407ad000 12 0 0 ----- [ anon ]
00000000407b0000 1016 32 32 rwx-- [ anon ]
00000000408ae000 12 0 0 ----- [ anon ]
00000000408b1000 1016 36 36 rwx-- [ anon ]
00000000409cc000 12 0 0 ----- [ anon ]
00000000409cf000 1016 100 100 rwx-- [ anon ]
0000000040acd000 12 0 0 ----- [ anon ]
0000000040ad0000 1016 72 72 rwx-- [ anon ]
0000000040bce000 12 0 0 ----- [ anon ]
0000000040bd1000 1016 40 40 rwx-- [ anon ]
0000000040ccf000 12 0 0 ----- [ anon ]
0000000040cd2000 1016 36 36 rwx-- [ anon ]
0000000040e8a000 12 0 0 ----- [ anon ]
0000000040e8d000 1016 68 68 rwx-- [ anon ]
0000000040f8b000 12 0 0 ----- [ anon ]
0000000040f8e000 1016 68 68 rwx-- [ anon ]
00000000410dd000 12 0 0 ----- [ anon ]
00000000410e0000 1016 68 68 rwx-- [ anon ]
00000000411de000 12 0 0 ----- [ anon ]
00000000411e1000 1016 36 36 rwx-- [ anon ]
00000000412df000 12 0 0 ----- [ anon ]
00000000412e2000 1016 40 40 rwx-- [ anon ]
000000004144a000 12 0 0 ----- [ anon ]
000000004144d000 1016 8 8 rwx-- [ anon ]
000000004154b000 12 0 0 ----- [ anon ]
000000004154e000 1016 48 48 rwx-- [ anon ]
00000000416a7000 12 0 0 ----- [ anon ]
00000000416aa000 1016 36 36 rwx-- [ anon ]
00000000417a8000 12 0 0 ----- [ anon ]
00000000417ab000 1016 40 40 rwx-- [ anon ]
00000000418ec000 12 0 0 ----- [ anon ]
00000000418ef000 1016 40 40 rwx-- [ anon ]
00000000419ed000 12 0 0 ----- [ anon ]
00000000419f0000 1016 36 36 rwx-- [ anon ]
0000000041aee000 12 0 0 ----- [ anon ]
0000000041af1000 1016 40 40 rwx-- [ anon ]
0000000041c54000 12 0 0 ----- [ anon ]
0000000041c57000 1016 36 36 rwx-- [ anon ]
0000000041d55000 12 0 0 ----- [ anon ]
0000000041d58000 1016 8 8 rwx-- [ anon ]
0000000041e56000 4 0 0 ----- [ anon ]
0000000041e57000 1024 8 8 rwx-- [ anon ]
0000000041f57000 12 0 0 ----- [ anon ]
0000000041f5a000 1016 44 44 rwx-- [ anon ]
0000000042058000 12 0 0 ----- [ anon ]
000000004205b000 1016 68 68 rwx-- [ anon ]
0000000042159000 12 0 0 ----- [ anon ]
000000004215c000 1016 32 32 rwx-- [ anon ]
000000005e532000 10308 10272 10272 rwx-- [ anon ]
00000000eb200000 5312 5312 5312 rwx-- [ anon ]
00000000eb730000 80704 0 0 rwx-- [ anon ]
00000000f0600000 10752 5856 5856 rwx-- [ anon ]
00000000f1080000 161280 0 0 rwx-- [ anon ]
00000000fae00000 21248 11144 11144 rwx-- [ anon ]
00000000fc2c0000 62720 0 0 rwx-- [ anon ]
0000003ac7e00000 112 104 0 r-x-- ld-2.5.so
0000003ac801c000 4 4 4 r-x-- ld-2.5.so
0000003ac801d000 4 4 4 rwx-- ld-2.5.so
0000003ac8200000 1336 540 0 r-x-- libc-2.5.so
0000003ac834e000 2048 0 0 ----- libc-2.5.so
0000003ac854e000 16 16 8 r-x-- libc-2.5.so
0000003ac8552000 4 4 4 rwx-- libc-2.5.so
0000003ac8553000 20 20 20 rwx-- [ anon ]
0000003ac8600000 8 8 0 r-x-- libdl-2.5.so
0000003ac8602000 2048 0 0 ----- libdl-2.5.so
0000003ac8802000 4 4 4 r-x-- libdl-2.5.so
0000003ac8803000 4 4 4 rwx-- libdl-2.5.so
0000003ac8a00000 88 64 0 r-x-- libpthread-2.5.so
0000003ac8a16000 2044 0 0 ----- libpthread-2.5.so
0000003ac8c15000 4 4 4 r-x-- libpthread-2.5.so
0000003ac8c16000 4 4 4 rwx-- libpthread-2.5.so
0000003ac8c17000 16 4 4 rwx-- [ anon ]
0000003ac8e00000 520 20 0 r-x-- libm-2.5.so
0000003ac8e82000 2044 0 0 ----- libm-2.5.so
0000003ac9081000 4 4 4 r-x-- libm-2.5.so
0000003ac9082000 4 4 4 rwx-- libm-2.5.so
0000003ac9e00000 28 20 0 r-x-- librt-2.5.so
0000003ac9e07000 2048 0 0 ----- librt-2.5.so
0000003aca007000 4 4 4 r-x-- librt-2.5.so
0000003aca008000 4 4 4 rwx-- librt-2.5.so
0000003acc600000 84 24 0 r-x-- libnsl-2.5.so
0000003acc615000 2044 0 0 ----- libnsl-2.5.so
0000003acc814000 4 4 4 r-x-- libnsl-2.5.so
0000003acc815000 4 4 4 rwx-- libnsl-2.5.so
0000003acc816000 8 0 0 rwx-- [ anon ]
0000003acce00000 68 52 0 r-x-- libresolv-2.5.so
0000003acce11000 2048 0 0 ----- libresolv-2.5.so
0000003acd011000 4 4 4 r-x-- libresolv-2.5.so
0000003acd012000 4 4 4 rwx-- libresolv-2.5.so
0000003acd013000 8 4 0 rwx-- [ anon ]
00002aaaaaaab000 8 8 0 r-xs- gcb.jar
00002aaaaaaad000 32 32 0 r-xs- resources.jar
00002aaaaaaba000 52 52 0 r-x-- libverify.so
00002aaaaaac7000 1020 0 0 ----- libverify.so
00002aaaaabc6000 12 12 12 rwx-- libverify.so
00002aaaaabc9000 164 132 0 r-x-- libjava.so
00002aaaaabf2000 1020 0 0 ----- libjava.so
00002aaaaacf1000 28 20 20 rwx-- libjava.so
00002aaaaacf8000 4 4 0 r-x-- [ anon ]
00002aaaaacf9000 4 4 4 rwx-- [ anon ]
00002aaaaacfa000 32 32 12 rwxs- 18503
00002aaaaad08000 40 24 0 r-x-- libnss_files-2.5.so
00002aaaaad12000 2044 0 0 ----- libnss_files-2.5.so
00002aaaaaf11000 4 4 4 r-x-- libnss_files-2.5.so
00002aaaaaf12000 4 4 4 rwx-- libnss_files-2.5.so
00002aaaaaf13000 56 56 0 r-x-- libzip.so
00002aaaaaf21000 1032 0 0 ----- libzip.so
00002aaaab023000 12 12 12 rwx-- libzip.so
00002aaaab026000 2500 1168 1168 rwx-- [ anon ]
00002aaaab297000 46656 0 0 rwx-- [ anon ]
00002aaaae027000 40 40 40 rwx-- [ anon ]
00002aaaae031000 728 0 0 rwx-- [ anon ]
00002aaaae0e7000 12 12 12 rwx-- [ anon ]
00002aaaae0ea000 156 0 0 rwx-- [ anon ]
00002aaaae111000 24 24 24 rwx-- [ anon ]
00002aaaae117000 312 0 0 rwx-- [ anon ]
00002aaaae165000 44 44 44 rwx-- [ anon ]
00002aaaae170000 120 0 0 rwx-- [ anon ]
00002aaaae18e000 28 16 16 rwx-- [ anon ]
00002aaaae195000 316 0 0 rwx-- [ anon ]
00002aaaae1e4000 44 24 24 rwx-- [ anon ]
00002aaaae1ef000 124 0 0 rwx-- [ anon ]
00002aaaae20e000 1632 1632 0 r-xs- rt.jar
00002aaaae3a6000 208 208 208 rwx-- [ anon ]
00002aaaae3da000 55144 44 0 r-x-- locale-archive
00002aaab19b4000 160 160 0 r-xs- bcprov-jdk15-146.jar
00002aaab19dc000 28 28 0 r-xs- mysql-connector-java-5.1.13-bin.jar
00002aaab19e3000 24 24 0 r-xs- commons-configuration-1.6.jar
00002aaab19e9000 20 20 0 r-xs- commons-lang-2.5.jar
00002aaab19ee000 8 8 0 r-xs- commons-logging-1.1.1.jar
00002aaab19f0000 56 56 0 r-xs- commons-collections-3.2.1.jar
00002aaab19fe000 12 12 0 r-xs- jce.jar
00002aaab1a01000 24 24 0 r-xs- jsse.jar
00002aaab1a07000 12 12 0 r-xs- sunjce_provider.jar
00002aaab1a0a000 76 72 0 r-x-- libnet.so
00002aaab1a1d000 1028 0 0 ----- libnet.so
00002aaab1b1e000 12 12 12 rwx-- libnet.so
00002aaab1b2f000 16 16 0 r-x-- libnss_dns-2.5.so
00002aaab1b33000 2044 0 0 ----- libnss_dns-2.5.so
00002aaab1d32000 4 4 4 r-x-- libnss_dns-2.5.so
00002aaab1d33000 4 4 4 rwx-- libnss_dns-2.5.so
00002aaab4000000 16432 3272 3272 rwx-- [ anon ]
00002aaab500c000 49104 0 0 ----- [ anon ]
00002b29fc3a7000 8 8 8 rwx-- [ anon ]
00002b29fc3b7000 28 16 0 r-x-- libjli.so
00002b29fc3be000 1028 0 0 ----- libjli.so
00002b29fc4bf000 8 8 8 rwx-- libjli.so
00002b29fc4c1000 12 12 12 rwx-- [ anon ]
00002b29fc4c4000 9320 6500 0 r-x-- libjvm.so
00002b29fcdde000 1032 0 0 ----- libjvm.so
00002b29fcee0000 1748 608 608 rwx-- libjvm.so
00002b29fd095000 232 164 164 rwx-- [ anon ]
00007fff13b03000 84 44 44 rwx-- [ stack ]
00007fff13b34000 16 4 0 r-x-- [ anon ]
ffffffffff600000 8192 0 0 ----- [ anon ]
---------------- ------ ------ ------
total kB 601248 49456 39620
Это хороший способ проверить это?
Из моей доступной памяти 1026076 (1 ГБ) эта программа действительно использует 600 КБ?
Я правильно рассчитал?
Это виртуальный сервер на случай, если все вышеперечисленное имеет значение, если вам нужно, чтобы я выводил какие-либо другие команды, дайте мне знать, с благодарностью.
Я предполагаю, что вы основываете свои выводы на этой строке вашего pmap
вывод:
total kB 601248 49456 39620
Если так, то вы неправильно это читаете. Эти числа представляют собой общее количество килобайты в использовании, а не байты, поэтому ваша JVM запросила около 600МБ памяти, из них 49МБ фактически хранится в физической памяти (остальное выгружается или передается, но не используется, или что-то еще). Небольшая часть этой памяти, вероятно, используется совместно с другими процессами (например, библиотеками mmap'd), но это шум по сравнению с использованием вашего процесса.
Почему ты не используешь top
?
сс: http://www.thegeekstuff.com/wp-content/uploads/2010/01/top-highlight.png использование: http://linux.about.com/od/commands/l/blcmdl1_top.htm