Linux 内核给每一个进程都提供了一个独立的虚拟地址空间,并且这个地址空间是连续的。这样,进程就可以很方便地访问内存,也就是虚拟内存。本文介绍常见内存性能分析命令,以及内存性能分析方法。
Linux 内存性能分析常用命令
- top
top 命令经常用来监控 Linux 的系统状况,比如 CPU、内存的使用情况,如下图所示:

图中第四行显示为系统内存状态 |
- vmstat
vmstat 是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可对操作系统的虚拟内存、进程、IO 读写、CPU 活动等进行监视,如下图所示:

memory 部分 |
Linux 内存性能诊断
这里我们使用 vmstat 来进行分析,如下所示:
[root@dm8 ~]# vmstat 1 10 |
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- |
MEMORY
- swap:切换到交换内存上的内存(默认以 KB 为单位)。如果 SWAP 的值不为 0,或者还比较大,比如超过 100 MB 了,但是 SI 和 SO 的值长期为 0,这种情况我们可以不用担心,不会影响系统性能。
- free:空闲的物理内存。
- buff:作为 buffer cache 的内存,对块设备的读写进行缓冲。
- cache:作为 page cache 的内存,文件系统的 cache 如果 cache 的值大的时候,说明 cache 处的文件数多,如果频繁访问到的文件都能被 cache,那么磁盘的读 IO bi 会非常小。
SWAP
- si:交换内存使用,由磁盘调入内存。
- so:交换内存使用,由内存调入磁盘。
注意内存够用的时候,这 2 个值都是 0,如果这 2 个值长期大于 0 时,系统性能会受到影响,磁盘 IO 和 CPU 资源都会被消耗。
空闲内存 (FREE) 很少的或接近于 0 时,并不能认定为内存不够用,Linux 是抢占内存的 OS,还要结合 si 和 so;如果 free 很少,si 和 so 也很少(大多时候是 0),那么不用担心,系统性能这时不会受到影响的。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




