我目前正在调试 VPS 的性能问题,为此我试图了解哪些进程占用的内存最多。阅读顶部,这是我得到的:
Mem: 366544k total, 321396k used, 45148k free, 380k buffers
Swap: 1048572k total, 592388k used, 456184k free, 7756k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
12339 ruby 20 0 844m 74m 2440 S 0 20.8 0:24.84 ruby
12363 ruby 20 0 844m 73m 1576 S 0 20.6 0:00.26 ruby
21117 ruby 20 0 171m 33m 1792 S 0 9.3 2:03.98 ruby
11846 ruby 20 0 858m 21m 1820 S 0 6.0 0:09.15 ruby
21277 ruby 20 0 219m 11m 1648 S 0 3.2 2:00.98 ruby
792 root 20 0 266m 10m 1024 S 0 3.0 1:40.06 ruby
532 mysql 20 0 234m 4760 1040 S 0 1.3 0:41.58 mysqld
793 root 20 0 250m 4616 984 S 0 1.3 1:20.55 ruby
586 root 20 0 156m 4532 848 S 0 1.2 6:17.10 god
12315 ruby 20 0 175m 2412 1900 S 0 0.7 0:07.55 ruby
3844 root 20 0 44036 2132 1028 S 0 0.6 1:08.22 ruby
10939 ruby 20 0 179m 1884 1724 S 0 0.5 0:08.33 ruby
4660 ruby 20 0 229m 1592 1440 S 0 0.4 2:55.46 ruby
3879 nobody 20 0 37428 964 520 S 0 0.3 0:01.99 nginx
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我的内存使用了大约 90%(这是我的问题),但是当您将 %MEM 值加起来时,它只会达到大约 50-60%。同样的事情,RES 加起来不超过~350mb。为什么?我误解了他们的意思吗?
谢谢
我试图了解哪些进程占用的内存最多。
这很简单:红宝石!
当你把 %MEM 值加起来时,它只会达到大约 50-60%
实际上,将如图所示的列相加得到69.2%。
作为三益指出,当然,这并不包括你的系统中的所有进程-尝试pastebinning的输出top -b -n 1,以获得一个文件的完整输出,并与我们分享,我们可以帮助你更好。
此外,内核会占用一些内存,某些类型的 VPS(例如 Xen、KVM)会在启动时保留一些额外的内存供内部使用。Pastebin 的输出也是dmesg如此。
为了更好的指标和易用性,我建议您使用htop 而不是顶部,启用“隐藏用户线程”选项:

也看看memtop:
