我已经尝试top和PS命令,但我无法找到每个进程使用的 RAM。
top 命令表示使用了 240MB RAM,但所有进程的内存显示为 0%,与ps. 我想知道哪个进程消耗了所有 240MB RAM。
是否有任何命令 which / script 可以按增加 RAM 使用量的顺序对正在运行的进程进行排序,以便我可以看到。我也发现很难读取字节和 KB。有没有办法将这些单位更改为 MB
请帮忙
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
Run Code Online (Sandbox Code Playgroud)
印刷:
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
Run Code Online (Sandbox Code Playgroud)
请记住, free 和 top 将显示“缓存”内存,因此您将无法判断实际使用了多少和空闲了多少。它在技术上对系统是免费的,尽管它可能必须转储缓存才能使用它。我发现 free 不是那么有用,而 top 只是稍微有用一点(加上 top 通常会消耗我拥有的任何可用 RAM,哈哈)。