千家信息网

vmstat 主机性能分析

发表于:2025-02-22 作者:千家信息网编辑
千家信息网最后更新 2025年02月22日,一、vmstat介绍及详解(此篇博客是从博客园博主随风迎处转载,博主的网址:http://www.cnblogs.com/beginner-boy/ ,再次感谢博主的细心积累 )语法格式: vmst
千家信息网最后更新 2025年02月22日vmstat 主机性能分析


一、vmstat介绍及详解(此篇博客是从博客园博主随风迎处转载,博主的网址:http://www.cnblogs.com/beginner-boy/ ,再次感谢博主的细心积累

语法格式: vmstat [-V] [-n] [-S unit] [delay [count]]

-V prints version.

-n causes the headers not to be reprinted regularly.

-a print inactive/active page stats.

-d prints disk statistics

-D prints disk table

-p prints disk partition statistics

-s prints vm table

-m prints slabinfo

-t add timestamp to output

-S unit size

delay is the delay between updates in seconds.

unit size k:1000 K:1024 m:1000000 M:1048576 (default is K)

count is the number of updates.

参数解释:

-V:显示vmstat版本信息

-n:只在开始时显示一次各字段名称

-a:显示活跃和非活跃内存

-d:显示各个磁盘相关统计信息

-D:显示磁盘总体信息

-p:显示指定磁盘分区统计信息

-s:显示内存相关统计信息及多种系统活动数量

-m:显示slabinfo

-t:在输出信息的时候也将时间一并输出出来

-S:使用指定单位显示。参数有k、K、m、M,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024bytes)

delay:刷新时间间隔。如果不指定,只显示一条结果

count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷

二、vmstat各字段说明

1、procs

r:表示运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU

b:表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

2、memory

swpd:表示切换到内存交换区的内存大小,即虚拟内存已使用的大小(单位KB),如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free:表示当前空闲的物理内存

buff:表示baffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲

Cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好

3、swap

si:表示有磁盘调入内存,也就是内存进入内存交换区的内存大小;通俗的讲就是 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。

注意:一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存

4、io

bi:表示由块设备读入数据的总量,即读磁盘,单位kb/s

bo:表示写到块设备数据的总量,即写磁盘,单位kb/s

注意:如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈

5、system

in:表示某一时间间隔内观测到的每秒设备终端数

cs:表示每秒产生的 上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。

注意:

这两个值越大,则由内核消耗的CPU就越多

6、CPU

us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id:表示CPU处在空间状态的时间百分比

wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈(主要是块操作)造成的

综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU想的us、sy、wa列的值

三、使用实践

一般vmstat工具的使用是通过两个数字参数来完成的,第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数,如:

2表示每个两秒采集一次服务器状态,1表示只采集一次。
实际上,在应用过程中,我们会在一段时间内一直监控,不想监控直接结束vmstat就行了,例如:

这表示vmstat每2秒采集数据,一直采集,直到我结束程序,这里采集了7次数据我就结束了程序。

------------------------------------------------------------------------------------------------------------------


内存 时间 系统 进程 磁盘 大小 切换 上下 上下文 信息 单位 次数 参数 也就是 数据 文件 百分 百分比 程序 线程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 流媒体管理服务器是什么 jdbc图书数据库增删改查 生产安全风险数据库辨识模板 小米枪战为什么没有连接到服务器 广州工业软件开发机构 闵行区合格软件开发诚信合作 农产品网络技术的应用 服务器安全防护概念 股权融资网络技术 腾讯网络安全是谁负责的 服务器清单 安全运维和数据库运维 将网络技术带进语文课堂 服务器的无线网怎么连上手机 mooc数据库应用技术 互动式网络安全意识培训 服务器配置和管理课程设计 数据库查询上限次数 水土保持监测数据库 exel连接数据库 山西pdu服务器电源价格 涉密信息软件开发甲级资质 臻游网络安全科技馆 华夏邓白氏数据库是干嘛的 在中国怎么用日本软件开发 电信的网络安全分公司主要职责 网络安全周线上答题 达内网络技术员岗位怎么样 连接数据库常用的三个接口对象 数据库技术发展历史经历
0