1. 程式人生 > >pmap命令,檢視程序佔用的記憶體及使用地址空間

pmap命令,檢視程序佔用的記憶體及使用地址空間

/usr/java/jdk1.5.0_14/bin/java-Djava.util.logging.manager=com.caucho.log.LogManagerImpl-Djava.system.class.loader=com.caucho.loader.SystemClassLoader-Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl-Djava.awt.headless=true -Dresin.home=/usr/local/resin3.1.8-rtuku/-Xmx256m -Xss1m -Xdebug -Dcom.sun.management.jmxremote-Djava.util.logging.manager=com.caucho.log.LogManagerImpl-Djavax.management.builder.initial=com.caucho.jmx.MBeanServerBuilderImpl-Djava.awt.headless=true -Dresin.
0028f000 
72K r-x-- /lib/libnsl-2.3.4.so
002a1000 
8K rwx-- /lib/libnsl-2.3.4.so
002a3000 
8K rwx--  [anon ]
0031c000 
84K r-x-- /lib/ld-2.3.4.so
00331000 
4K r-x-- /lib/ld-2.3.4.so
00332000 
4K rwx-- /lib/ld-2.3.4.so
0033a000 
1172K r-x--  /lib/tls/libc-2.3.4.so
0045f000 
4K r-x-- /lib/tls/libc-2.3.4.so
00460000 
12K rwx-- /lib/tls/libc-2.3.4.so
00463000 
8K rwx--  [anon ]
00467000 
132K r-x-- /lib/tls/libm-2.3.4.so
……
b7f50000 
4K rwx--  [anon ]
b7f51000 
4K r-x--  [anon ]
b7f52000 
4K r-x--  [anon ]
bfcf1000 
12K -----  [ anon]
bfcf4000 
1012K rwx--  [ stack ]
 
total  652340K
從中可以看出來載入的所有so和執行緒堆疊用掉的記憶體。
據稱,當anon在512K-4M之間的超過上千個的時候,可能就是在多執行緒上有問題了。
還有一個用途,比較偏門的。
比如一個squid伺服器,前人直接cd進目錄,然後./squid啟用的服務。那怎麼去知道這個squid到底在那個目錄裡呢?(尤其是發現慣用的/usr/local下嘩嘩的擺著五個squid目錄……)
現在只要pmap 一下,第一條就給出了全路徑。哈哈~~