用于了解每个进程消耗多少内存的linux命令

分享于 

3分钟阅读

电脑

  繁體 雙語

问题:

我试过 topPS 命令,但无法找到每个进程所使用的RAM。

top命令表示使用 240MB 个内存,但内存显示所有进程的0%,与 PS 相同。 我想知道哪个进程消耗所有 240MB 个内存。

是否有任何命令/脚本可以对运行过程进行排序以便提高RAM使用率,以便可以看到。 我也发现读字节和字节非常困难。 是否有办法将这些单位 chnage MB

请帮助


回答 1:


ps -eo rss,pid,user,command --sort -size | 


awk '{ hr=$1/1024 ; printf("%13.2f Mb",hr) } { for ( x=4 ; x<=NF ; x++ ) { printf("%s",$x) } print"" }' | 


egrep -v 0.00



打印:


 6.65 Mb/usr/sbin/mysqld


 0.75 Mb rsyslogd -c4


 38.59 Mb/usr/sbin/apache2 -k start


 37.95 Mb/usr/sbin/apache2 -k start


 34.38 Mb/usr/sbin/apache2 -k start


 33.35 Mb/usr/sbin/apache2 -k start


 31.43 Mb/usr/sbin/apache2 -k start


 2.38 Mb/usr/bin/python/usr/bin/fail2ban-server -b -s/var/run/fail2ban/fail2ban.sock


 0.61 Mb/usr/sbin/nova-agent -q -p/var/run/nova-agent.pid -o/var/log/nova-agent.log -l info/usr/share/nova-agent/nova-agent.py


 3.00 Mb/usr/sbin/apache2 -k start


 1.71 Mb sshd: root@notty


 0.36 Mb sshd: root@pts/0


 1.10 Mb ps -eo rss,pid,user,command --sort -size


 1.40 Mb/usr/lib/openssh/sftp-server


 0.59 Mb/usr/sbin/ntpd -p/var/run/ntpd.pid -g -u 103:105


 0.08 Mb/usr/sbin/sshd -D


 0.21 Mb/sbin/init


 1.18 Mb -bash


 0.28 Mb cron


 0.88 Mb qmgr -l -t fifo -u



请记住,免费和顶端将显示"高速缓存"内存,这样你就不能知道实际使用和免费的多少了。 它是从技术上免费的,尽管它可以能必须转储缓存来使用它。 我觉得自由不那么有用,而顶部只是一些有用的( 加上顶部通常消耗任何免费的内存我有 lol )。


回答 2:

运行"系统监视器"有一个进程选项卡可以按内存使用排序。 我不熟悉 centos,它是在Ubuntu上预先安装的,我使用它。


回答 3:

如果你只是做一个顶部,它将显示内存使用率为总系统内存的百分比。 如果一切都显示 0,那么没有什么是使用相当大的内存百分比。 这其实不常见。 考虑如果你有一台具有 8个ram的服务器,1%为 80 megs。 这是完全可以能的240 that由一系列的东西,使用少于 40的一个零件。 所以百分比不会帮你。

如果你做了

顶部 -M

它应该以任何适用的单位吐出实际的内存使用情况。



COM  COMM  PROC  Comma  CONS  RAM  
相关文章