我需要找到内核空间的RAM使用情况和使用的用户空间内存。看到了
cat / proc / meminfo
我无法找到确切的细节。是否有任何命令行来查找内核空间和使用的用户空间内存的RAM使用情况。
答案 0 :(得分:7)
答案 1 :(得分:1)
你能详细说明一下这个上下文中“内核”是什么意思吗?你为什么要把它与系统的其他部分分开?
您可以使用
cat /proc/meminfo
或
free -m
了解一般的内存使用情况。通常,“可用内存”将是进程在不久的将来可以获取的最大RAM量,如果请求更多,则系统将减速。另请注意,使用所有“可用内存”还需要牺牲所有磁盘缓存,这将使未来的磁盘访问速度变慢。
用于缓冲区/缓存的内存(现在同样的事情,但历史上Linux有这些需求的单独内存区域)可以用sudo slabtop -sc
检查 - 显示缓冲区/缓存(“slab缓存”)的使用和活动使用百分比(您可以将其视为缓存命中率)。如果占用大多数RAM的项目具有高“USE”百分比,则内核工作正常。
如果你真的想谈论“内核内存使用”,你必须决定内核模块,页表,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
...
另见: