这是我的问题:
top - 11:32:47 up 22:20, 2 users, load average: 0.03, 0.72, 1.27
Tasks: 112 total, 1 running, 110 sleeping, 1 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 8193844k total, 7508292k used, 685552k free, 80636k buffers
Swap: 2102456k total, 15472k used, 2086984k free, 7070220k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28555 root 20 0 57424 38m 1492 S 0 0.5 0:06.38 bash
28900 root 20 0 39488 7732 3176 T 0 0.1 0:03.12 python
28553 root 20 0 72132 5052 2600 S 0 0.1 0:00.22 sshd
28859 root 20 0 70588 3424 2584 S 0 0.0 0:00.06 sshd
29404 root 20 0 70448 3320 2600 S 0 0.0 0:00.06 sshd
28863 root 20 0 42624 2188 1472 S 0 0.0 0:00.02 sftp-server
29406 root 20 0 19176 1984 1424 S 0 0.0 0:00.00 bash
2854 root 20 0 115m 1760 488 S 0 0.0 5:37.02 rsyslogd
29410 root 20 0 19064 1400 1016 R 0 0.0 0:05.14 top
3111 ntp 20 0 22484 604 460 S 0 0.0 10:26.79 ntpd
3134 proftpd 20 0 64344 452 280 S 0 0.0 6:29.16 proftpd
2892 root 20 0 49168 356 232 S 0 0.0 0:31.58 sshd
1 root 20 0 27388 284 132 S 0 0.0 0:01.38 init
3121 root 20 0 4308 248 172 S 0 0.0 0:16.48 mdadm
如您所见,使用了 7.5 GB 内存,但没有进程使用它。 这是怎么回事,如何解决这个问题?
谢谢您的回答。
为了查看所有进程,您可以使用该命令:
ps aux
然后尝试使用不同的过滤器进行排序
ps faux
希望有帮助。
如果您的系统开始使用交换文件 - 那么您的内存负载很高。取决于文件系统,您使用的程序 - Linux 系统可能会分配您的所有系统内存 - 但这并不意味着它们正在使用它。
我们使用的许多 ubuntu 和 debian 服务器都有 32 或 64 mb 的可用内存,但不使用交换。 不过,我不是 Linux 专家,所以如果我错了,请有人纠正我:)
我没有方便实验的 Linux 机器,但看起来你可以使用交互式命令对 top 的输出进行排序,这样你就可以将最大的内存用户带到顶部。检查手册页并进行实验。
更新:在我拥有的 top 版本(procps 3.2.7)中,您可以点击“<" and ">”来更改其排序依据的字段。实际上并没有说明它是什么字段,你必须看看显示是如何变化的。一旦你尝试一下,就不难了。
但是,Arrowmaster 的观点(它可能用于缓存)是一个更好的答案。使用“免费”查看使用了多少。
我也有类似的问题。我在连接了 TP-Link USB 无线 LAN 棒的 Pi B+ 上运行 Raspbian。该棒引起了一个问题,导致系统启动时几乎所有内存都被消耗(大约 445 MB 中的 430 MB)。就像您的情况一样,正在运行的进程没有消耗那么多内存。当我取下棒并重新启动时,一切都很好,仅消耗 50 MB 内存。