Mar*_*cel 1 gnome arch-linux memory
我正在使用 GNOME 3.38 X11 运行 Arch Linux,并且有一个问题,即我处于空闲状态(在使用计算机一段时间并关闭所有内容后)使用大约 8-9GB 的 RAM。
我知道linxatemyram,我认为这不是问题,因为free -m打印了以下内容:
total used free shared buff/cache available
Mem: 62282 9059 29502 162 23720 52368
Swap: 8191 0 8191
Run Code Online (Sandbox Code Playgroud)
表明我确实在什么都不运行时使用了大量内存。当我曾经拥有 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)
Run Code Online (Sandbox Code Playgroud)
$ 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
Run Code Online (Sandbox Code Playgroud)
根据这些信息,你只要你确实有tmpfs文件系统安装在/tmp与/dev/shm但top其他类似的实用程序没有显示这些。
请通过监控这些挂载点的使用情况df并清理数据或停止应用程序向它们写入数据。一些应用程序创建文件并立即删除它们,这些文件仍然占用空间。它们不能通过 eg 直接看到ls,df但您可以通过以下方式发现它们:
sudo lsof -n | egrep "/tmp|/dev/shm" | grep deleted
Run Code Online (Sandbox Code Playgroud)
由于这是我第 20 次看到这个问题,因此我已经继续并针对 提交了错误报告top,free并且htop:
https://gitlab.com/procps-ng/procps/-/issues/196
https://github.com/htop-dev/htop/issues/556