本文來自:https://blog.csdn.net/mydriverc2/article/details/41956063java
問題描述:經過topas發現%comp內存已使用98% spa
問題分析: .net
1,從大到小排列10個內存使用率進程blog
ps aux | head -1 ; ps aux | sort -rn +3 | head -10進程
如詳細查看進程: ps -ealf | head -1 ; ps -ealf | sort -rn +9 | head -10內存
# ps aux | head -1 ; ps aux | sort -rn +3 | head -10get
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMANDit
root 6553834 0.1 3.0 115064 115080 - A Feb 20 86:08 /var/opt/tivoliconsole
root 5701730 0.0 1.0 17480 21956 - A Mar 05 1:17 /opt/BESClient/grep
pconsole 4456680 0.0 1.0 42456 42464 - A Feb 20 3:11 /usr/java5/bin/
root 6750376 0.0 0.0 796 824 pts/0 A 11:29:26 0:00 ps aux
root 6488234 0.0 0.0 260 268 - A Mar 13 0:02 auditbin
root 6357208 0.0 0.0 236 248 pts/0 A 11:29:26 0:00 sort -rn +3
root 5963962 0.0 0.0 1768 1804 - A Feb 20 0:00 /usr/sbin/rsct/
root 5832798 0.0 0.0 836 856 - A 11:29:12 0:00 telnetd -a
root 5570748 0.0 0.0 2128 2096 - A Feb 20 0:00 /usr/sbin/rsct/
root 5308652 0.0 0.0 7328 7436 - A Feb 20 1:01 /usr/sbin/rsct/
2,根據某個命令或進程名,查看內存使用率
# ps aux | head -1 ; ps aux | grep topas
如詳細查看:
USER PID %CPU %MEM SZ RSS TTY STAT STIME TIME COMMAND
root 2359426 0.0 0.0 1440 1272 - A Feb 20 1:08 /usr/bin/topasr
root 6160578 0.0 0.0 252 264 pts/0 A 11:36:45 0:00 grep topas
但有的時候ps aux並不能很是詳細地表現出進程的完整使用率
3,經過root用戶svmon用戶能夠分析出內存使用量
# svmon -G
size inuse free pin virtual mmode
memory 1048576 1037487 11089 229668 378796 Ded
pg space 2097152 2360
work pers clnt other
pin 196952 0 0 32716
in use 378796 0 658691
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 793327 2360 49188 134636
m 64 KB - 15260 0 11280 15260
inuse:是物理內存使用量,這裏是以4K爲單位,因此 1037487*4096=4249546752(424M)
virtual:是虛擬內存使用量,這裏是以4K爲單位,因此 378796*4096=1551548416(155M)
4,顯示使用物理內存最多的3個進程:
# svmon -uP -t 3|grep -p Pid|grep '^.*[0-9] '
6553834 java 51279 8917 0 50938 N Y N
4456680 java 34626 8874 0 34608 N Y N
5701730 BESClient 29564 8882 0 25689 Y Y N
輸出的格式順序爲 Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd
能夠計算出X程序所使用的實存爲51279×4096=210038784,約爲210MB