我需要找到内核空间的 RAM 使用情况和使用的用户空间内存。一看到
猫 /proc/meminfo
我无法找到确切的细节。是否有任何命令行来查找内核空间的 RAM 使用情况和使用的用户空间内存。
我需要找到内核空间的 RAM 使用情况和使用的用户空间内存。一看到
猫 /proc/meminfo
我无法找到确切的细节。是否有任何命令行来查找内核空间的 RAM 使用情况和使用的用户空间内存。
您能否详细说明一下在这种情况下“内核”是什么意思,为什么要将其与系统的其余部分分开?
您可以使用
cat /proc/meminfo
或者
free -m
大致了解内存使用情况。通常,“可用内存”将是进程在不久的将来可以获取的最大 RAM 量,如果请求更多,系统将变慢。另请注意,使用所有“可用内存”还需要牺牲所有磁盘缓存,这将使未来的磁盘访问速度变慢。
用于缓冲区/缓存的内存(现在是同一件事,但历史上 Linux 有单独的内存区域来满足这些需求)可以通过sudo slabtop -sc
显示缓冲区/缓存(“slab 缓存”)使用情况和活动使用百分比(你可以认为这是缓存命中率)。如果占用大部分 RAM 的项目具有较高的“使用”百分比,则您的内核工作正常。
如果您真的想谈论“内核内存使用”,您必须确定内核模块、页表、TCP/IP 接收缓冲区、磁盘缓存等是否是您感兴趣的内存的一部分。就我个人而言,我真的不'不在乎某些部分在技术上是内核进程还是用户模式进程 - 如果工作系统需要它,它无论如何都需要保留。
内核使用的一种解释:
grep Memory: /var/log/dmesg | \
grep -E -o '[0-9]+K (kernel code|data|rwdata|rodata|init)' &&
awk '{print $2/1024 "K " $1 }' /proc/modules | sort -hr
示例输出:
8198K kernel code
1290K rwdata
3940K rodata
1428K init
1764K i915
1192K xfs
1068K btrfs
572K kvm
...
也可以看看: