内存使用率非常高,没有任何运行

内存使用率非常高,没有任何运行

我正在运行带有 GNOME 3.38 X11 的 Arch Linux,并且遇到了一个问题,即我使用大约 8-9GB 的 RAM 处于空闲状态(在使用计算机一段时间并关闭所有内容之后)。

我知道关于林沙特米拉姆,我不认为这是问题,因为free -m打印以下内容:

               total        used        free      shared  buff/cache   available
Mem:           62282        9059       29502         162       23720       52368
Swap:           8191           0        8191

这表明我在不运行任何东西时确实使用了大量的内存。当我以前有 16GB 时,由于这个问题,我也会经常耗尽内存,所以我不认为这是某种形式的缓存,因为当我的内存使用量增加时,缓存会减少。

奇怪的是,top内存使用量加起来也没有达到它声称保留的数量。这是我得到的结果的粘贴。我有一段时间一直在想一定有什么东西泄漏了,但我似乎无法找出是什么。

编辑:额外的输出。这些是在重新启动后不久测量的,因此不具有代表性。出现相同情况后我会重新运行并发布。

$ mount | grep tmpfs
dev on /dev type devtmpfs (rw,nosuid,relatime,size=31848276k,nr_inodes=7962069,mode=755,inode64)
run on /run type tmpfs (rw,nosuid,nodev,relatime,mode=755,inode64)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,inode64)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,size=4096k,nr_inodes=1024,mode=755,inode64)
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,size=31888716k,nr_inodes=409600,inode64)
tmpfs on /run/user/1000 type tmpfs (rw,nosuid,nodev,relatime,size=6377740k,nr_inodes=1594435,mode=700,uid=1000,gid=985,inode64)
$ df -h
Filesystem      Size  Used Avail Use% Mounted on
dev              31G     0   31G   0% /dev
run              31G  1.7M   31G   1% /run
/dev/nvme0n1p3  450G  208G  219G  49% /
tmpfs            31G  737M   30G   3% /dev/shm
tmpfs           4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs            31G   19M   31G   1% /tmp
tmpfs           6.1G  136K  6.1G   1% /run/user/1000

答案1

根据您提供的信息,您确实tmpfs安装了文件系统/tmp,并且其他类似实用程序/dev/shm未显示这些文件系统。top

请通过监视这些安装点的使用情况df并清理数据或停止应用程序向其写入数据。某些应用程序创建文件并立即删除它们,但此类文件仍然占用空间。它们不能直接通过例如ls或看到,df但您可以通过以下方式发现它们:

sudo lsof -n | egrep "/tmp|/dev/shm" | grep deleted

由于这是我第 20 次看到这个问题,我已经针对topfree和提交了错误报告htop

https://gitlab.com/procps-ng/procps/-/issues/196

https://github.com/htop-dev/htop/issues/556

答案2

如果问题是 9GB 的已用内存,则运行 top 并按 %MEM 列出进程。

完全正常。 Linux、Windows 和大多数其他操作系统都喜欢缓存所有可以缓存的内容。内存正在被使用,但它没有锁定该内容。它可以被释放并用其他东西替换,速度与磁盘读取滚动一样快。
仅当一个大进程(或一组大进程)刚刚结束时,您才应该看到大量可用内存。

相关内容