在Ubuntu22.04中,我遇到了一个奇怪的记忆问题。我似乎找不出为什么我的内存使用量如此之高。当我启动我的笔记本电脑时,内存的使用情况和预期一样,但随着时间的推移,有些东西似乎耗尽了我的内存,但系统似乎不知道它是用来做什么的。
在笔记本电脑运行了几天,晚上都在睡觉之后,free -m报告如下:
total used free shared buff/cache available
Mem: 14812 7329 2683 1810 4799 5348
Swap: 2047 416 1631所有应用程序都已关闭,根据这个工具,所有应用程序使用的累积内存为1.7 GiB。那么,使用最后一个~5.5GiB (7.2-1.7)的是什么呢?
我是不是遗漏了什么?

发布于 2022-12-01 15:32:40
写这个答案是为了试图排除可能导致“不明”内存使用的原因,这可能超出了OP所经历的范围。
在Linux中,内存的使用在很大程度上可以归因于两个元素:
在这个问题中,OP不能解释进程/线程使用的所有内存。因此,剩余的内存很可能被内核用于文件系统操作。
目前,我知道文件系统内存使用率过高的三个主要原因:
tmpfs和类似的文件系统)要排除这3种情况,我建议如下:
运行以下命令以获取有关ZFS ARC缓存的详细信息:
arcstat -a size报告的stat将显示为正常使用的内存。
从您的帖子中可以看出,这里使用的是0.5GB。
运行以下命令以获取有关当前任何tmpfs文件系统磁盘的信息:
df -hl -t"tmpfs"used报告的任何金额都将显示为正常使用的内存。
Ubuntu (和许多其他Linux变体)在/dev/shm下有一个默认的ramdisk。应用程序可以使用这个空间,因此您可以轻松地检查:
ls -ahl /dev/shm此外,tmpfs的使用情况也显示在shared下的free输出中,因此从您的文章中可以明显看出这里使用的是1.8GB。
使用以下命令检查磁盘IO:(iostat是sysstat包的一部分)
iostat将此与有关磁盘的已启用文件系统压缩知识结合起来。对于ZFS,运行以下命令获取所有Zpools和数据集的压缩属性:
zfs get compression如果磁盘IO较高,再加上启用的本机压缩,则会导致报告为正常使用内存的内存过多。
https://askubuntu.com/questions/1439869
复制相似问题