linux性能优化之vmstat

vmstat 是一个常用 的系统性能分析工具,主要用来分析系统的内存使用情况,也常用来分析CPU上下文切换和中断的次数

 

我们来 --help 一下

[root@localhost ~]# vmstat --htlp

vmstat: unrecognized option '--htlp'

 

Usage:

vmstat [options] [delay [count]]

其中 option 是 参数选项

delay 每次输出 相隔多少时间

count 共输出几次

 

比如一个 vmstat 的 一个使用示例:

[root@localhost ~]# vmstat 5 3

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free buff cache si so bi bo in cs us sy id wa st

1 1 0 7692452 2108 161284 0 0 22 1 39 45 0 0 100 40 0

0 2 0 7692476 2108 161284 0 0 0 0 42 39 0 0 100 50 0

0 0 0 7692476 2108 161284 0 0 0 0 42 40 0 0 100 0 0

其中

cs (context switch) 是每秒 上下文切换次数,过多的上下文切换,会把CPU时间消耗在寄存器,内核栈以及虚拟内存等数据 的保存和

恢复上,缩短进程真正运行的时间,成了系统性能大幅下降的一个元凶

in (interrupt) 则是每秒中断的次数

r (running or runnable) 是就绪队列的长度,也就是正在运行和等待CPU的进程数

b (blocked) 则是处于不可中断睡眠状态的进程数. 意味着进程被阻塞。 主要是 指资源阻塞的进程队列数(比如IO资源,页面调度等)



swpd : 已使用 的虚拟内存大小

si : 从磁盘交换到swap 虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用 或者 内存泄露了

so : 从 swap 虚拟内存交换到磁盘的交换页数量,单位: KB/秒。如果这个值大于0,表示物理内存不够用 或者 内存泄露了



bi : 每秒读 块设备 的大小

bo : 每秒写块设备的大小

 

linux 为每个CPU都维护了一个就绪队列,将活跃进程(即正在运行和正在等待CPU的进程)按照优先级和等待CPU的时间排序,然后选择最需要CPU的进程,也就是优先级最高和等待CPU时间最长的进程来运行,也就是 run 队列

 

虽然  us + sy 总共 也不是占据很多比列,但是出现了CPU处理等待的现象(r队列)。由于CPU只有一个核,因此这个run队列很容易出现尖峰

 

 

 

-a, --active active/inactive memory

显示 活动 于 非 活动 内存

[root@localhost ~]# vmstat 5 3 -a

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----

r b swpd free inact active si so bi bo in cs us sy id wa st

1 0 0 7692880 76696 72252 0 0 14 1 34 37 0 0 100 0 0

0 0 0 7692888 76696 72288 0 0 0 0 44 43 0 0 100 0 0

0 0 0 7692888 76696 72288 0 0 0 0 43 40 0 0 100 0 0

 

 

 

 

参考资源

https://www.cnblogs.com/feng0815/p/8613547.html

极客时间

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值