附件是程序的截图htop
。内存使用量一直在增加,但我找不到是什么程序吃我的 RAM。之后,只剩下 200MB 内存可用 :'(。
您能给我一些提示来修复这个问题吗?
更新:
我停止我知道的所有进程(实际上我只运行了一个进程),等待大约 30 分钟,然后执行
free -m total used free shared buffers cached Mem: 15039 14687 352 0 1 16 -/+ buffers/cache: 14669 370 Swap: 0 0 0
在我看来,内存的可用空间永远不会再回来。
更新 2
ps aux --sort -rss | head USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1060 0.0 0.0 279756 3320 ? Sl 15:11 0:00 /usr/lib/policykit-1/polkitd --no-debug ubuntu 1830 0.0 0.0 21808 3240 pts/1 Ss 15:12 0:00 -bash root 751 0.0 0.0 10220 2296 ? Ss 15:11 0:00 dhclient -1 -v -pf /run/dhclient.eth0.pid -lf /var/lib/dhcp/dhclient.eth0.leases eth0 root 1054 0.0 0.0 344384 2264 ? Ssl 15:11 0:00 NetworkManager root 1 0.1 0.0 33760 2072 ? Ss 15:11 0:03 /sbin/init root 1327 0.0 0.0 287352 1712 ? Sl 15:11 0:00 /usr/lib/accountsservice/accounts-daemon ubuntu 20475 0.0 0.0 17324 1424 pts/1 R+ 15:48 0:00 ps aux --sort -rss syslog 942 0.0 0.0 262132 1328 ? Ssl 15:11 0:00 rsyslogd root 530 0.0 0.0 51928 1268 ? Ss 15:11 0:00 /lib/systemd/systemd-udevd --daemon
** 更新 3:**
答案1
一个好方法是检查 RSS 最大的进程
ps aux --sort -rss | head
或者使用 slabtop 之类的工具来查看 Linux slab 分配器上内存的使用情况:
sudo slabtop
答案2
您的内存可能被用作 RAM 磁盘(https://en.wikipedia.org/wiki/RAM_drive)。
键入df -h
。您是否看到挂载在 或 上的“tmpfs” /dev/shm
?/run/shm
如果是,则表示您的内存正在用于该文件系统。
过去,我曾将经常访问的文件存储在那里(注意:重新启动时文件会被删除)。我不记得有关它的细节,但它应该会随着内存的使用而调整大小。但是,我总是想知道如果我把文件留在那里,它是否永远不会回收该空间。因此,我放弃了这样做。
/dev/shm
如果您在此网站上搜索“RAM 磁盘” 、 或(最后一个是旧版本 Ubuntu 使用的位置)等字词/run/shm
,您将找到更多信息。例如:
或者来自另一个网站的这个:
(我希望这能回答你关于内存去哪儿的问题。但是,我的建议是将其保留为默认大小,直到你阅读更多相关信息。我不记得系统是否依赖它。)