Linux性能优化:CPU性能分析工具--vmstat
vmstat是Virtual Meomory Statistics(虚拟内存统计)缩写,可对操作系统的虚拟内存、进程、CPU活动进行监控。是对系统的整体情况进行统计,不足之处是无法对某个进程进行深入分析。
语法格式:
vmstat [options] [delay [count]]
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
参数说明
| 参数 | 说明 |
|---|---|
| -a | 显示活跃和非活跃内存 |
| -f | 显示从系统启动至今的fork数量 |
| -m | 显示slabinfo |
| -n | 只在开始时显示一次各字段名称 |
| -s | 显示内存相关统计信息及多种系统活动数量 |
| -d | 显示磁盘相关统计信息 |
| -p | 显示指定磁盘分区统计信息 |
| -S | 使用指定单位显示。参数有 k 、K 、m 、M ,分别代表1000、1024、1000000、1048576字节(byte)。默认单位为K(1024 bytes) |
| -V | 显示vmstat版本信息 |
输出信息说明
类别:
- procs:进程
- memory:内存
- swap:虚拟内存
- io:磁盘io
- system:系统内核
- cpu:CPU时间百分比
procs
| 项目 | 说明 |
|---|---|
| r | 等待执行的任务数,当这个值超过了CPU数目,就会出现CPU瓶颈了 |
| b | 处在非中断睡眠状态的进程数,大于0表示进程阻塞 |
memory
| 项目 | 说明 |
|---|---|
| swpd | 正在使用的swap大小单位K,如果大于0,表示物理内存不足 |
| free | 空闲的物理内存空间 |
| buff | 已使用的buff大小,对块设备的读写进行缓冲 |
| cache | 已使用的cache大小,文件系统的cache |
| inact | 非活跃内存大小 |
| active | 活跃的内存大小 |
swap
| 项目 | 说明 |
|---|---|
| si | 交换内存使用,由磁盘调入内存 |
| so | 交换内存使用,由内存调入磁盘 |
io
| 项目 | 说明 |
|---|---|
| bi | 从块设备读入的数据总量(读磁盘) (KB/s),如果这个值大于0,表示物理内存不够用或者内存泄露了 |
| bo | 写入到块设备的数据总理(写磁盘) (KB/s) ,如果这个值大于0,表示物理内存不够用或者内存泄露了 |
system
这2个值越大,会看到由内核消耗的CPU时间会越多。
| 项目 | 说明 |
|---|---|
| in | 每秒产生的中断次数 |
| cs | 每秒产生的上下文切换次数 |
cpu
| 项目 | 说明 |
|---|---|
| us | 用户进程消耗的CPU时间百分比。us 的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超过50% 的使用,那么就该考虑优化程序算法或者进行加速了 |
| sy | 内核进程消耗的CPU时间百分比,其中包括消耗在system、irq、softirq状态的时间。sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性的表现,我们应该检查原因 |
| id | 系统空闲消耗的总CPU时间百分比 |
| wa | IO等待消耗的CPU时间百分比。wa的值高时,说明IO等待比较严重,这可能是由于磁盘大量作随机访问造成,也有可能是磁盘的带宽出现瓶颈(块操作) |
| st | Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown. |
示例
不加任何参数:
[root@test ~]# vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 18536908 381556 58920 35857652 0 0 2 6 0 0 2 2 96 1 0
以上示例显示的是自系统启动后它记录的统计信息的均值。在CPU一栏显示,CPU有2%的时间用于执行用户应用程序代码,2%的时间用于系统代码,其余96%的时间处于空闲状态。
每2秒刷新输出结果,共计10条数据:
[yanhuauser@mams-103 optest]$ vmstat 2 10 |tee vmstat.log
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
2 3 18244556 320756 58848 37127060 0 0 2 6 0 0 2 2 96 1 0
2 2 18233548 319008 58856 37107488 4546 0 4554 64 35098 28464 5 5 84 6 0
2 1 18233548 365572 58864 36950716 8 0 8 640 40116 27700 6 7 83 5 0
1 2 18233292 321304 58880 37012480 134 0 134 92 35978 33730 5 2 88 6 0
1 1 18233292 374516 58880 36972972 12 0 12 106 31706 25987 3 2 90 5 0
4 2 18233292 302484 58888 37047228 8 0 10 32 26781 24285 5 3 87 5 0
1 2 18233292 371552 58904 36977100 12 0 12 78 30176 25186 5 3 87 5 0
3 0 18233292 307768 58912 37015744 24 0 24 42 36149 26812 1 5 89 5 0
0 3 18233036 377984 58920 36941756 194 0 212 64 35131 26675 2 3 90 5 0
3 2 18233036 567952 58920 36795824 22 0 22 0 30918 25781 2 2 90 6 0
以上示例中,第一组数据是CPU ticks,显示的是自系统启动的CPU时间,这里的“tick”是一个时间单位。虽然精简的vmstat输出仅显示四个CPU状态——us、sy、id和wa,这里则显示了全部CPU ticks的分布情况。
Linux性能优化:CPU性能分析工具--vmstat的更多相关文章
- mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)
mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...
- redis性能优化、内存分析及优化
redis性能优化.内存分析及优化 1.优化网络延时 2.警惕执行时间长的操作 3.优化数据结构.使用正确的算法 4.考虑操作系统和硬件是否影响性能 5.考虑持久化带来的开销 5.1 RDB 全量持久 ...
- oracle性能优化之awr分析
oracle性能优化之awr分析 作者:bingjava 最近某证券公司系统在业务期间系统运行缓慢,初步排查怀疑是数据库存在性能问题,因此导出了oracle的awr报告进行分析,在此进行记录. 导致系 ...
- linux性能优化cpu 磁盘IO MEM
系统优化是一项复杂.繁琐.长期的工作,优化前需要监测.采集.测试.评估,优化后也需要测试.采集.评估.监测,而且是一个长期和持续的过程,不 是说现在优化了,测试了,以后就可以一劳永逸了,也不是说书本上 ...
- Android 性能优化 五 性能分析工具dumpsys的使用
Android提供的dumpsys工具能够用于查看感兴趣的系统服务信息与状态,手机连接电脑后能够直接命令行运行adb shell dumpsys 查看全部支持的Service可是这样输出的太多,能够通 ...
- mysql性能优化-慢查询分析、优化索引和配置
一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1) max_connec ...
- [转]mysql性能优化-慢查询分析、优化索引和配置
一. 优化概述 MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候.磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在 ...
- mysql性能优化-慢查询分析、优化索引和配置【转】
一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1) max_connec ...
- mysql性能优化-慢查询分析、优化索引和配置 MySQL索引介绍
MySQL索引介绍 聚集索引(Clustered Index)----叶子节点存放整行记录辅助索引(Secondary Index)----叶子节点存放row identifier-------Inn ...
- 9.mysql性能优化-慢查询分析、优化索引和配置
目录 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 max_connections ...
随机推荐
- Jmeter(三十一) - 从入门到精通 - Jmeter Http协议录制脚本工具-Badboy4(详解教程)
1.简介 上一篇文章中宏哥给小伙伴或童鞋们介绍讲解了手动添加Variable list的值,而实际工作中Badboy为我们提供了Variable setter工具,让我们不再使用哪一种比较笨拙的方法了 ...
- charles的安装
1:点击安装文件charles-proxy-4.2.8-win64.msi 2:点击下一步 3:勾选同意,点击"next"按钮 4:指定安装的路径,继续点击"next&q ...
- 第11.14节 正则表达式转义符和Python转义符相同引发问题的解决办法
正则表达式使用反斜杠('\')来把特殊字符转义成普通字符(为了方便称为"正则表达式转义"),而反斜杠在普通的 Python 字符串里也是转义符(称为"字符串转义" ...
- 从Excel获取整列内容进行批量扫描
实习工作原因,需要测试excel表里面ip地址是否存在漏洞,扫了一眼,呕,四五百个IP,光是挨个进行访问,都是一个浩大的工程,所以准备开始摸鱼认真工作 思路是:excel按列提取->将IP按行存 ...
- Mac下查看端口占用情况
为什么 后端开发时,有时会碰到服务无法正常启动,端口被占用.这时需要查看端口占用情况. 是什么 需要用到一些Linux命令. 怎么做 查看占用端口51805的进程 lsof -n -P -i TCP ...
- 半夜删你代码队 Day6冲刺
一.每日站立式会议 1.站立式会议 成员 昨日完成工作 今日计划工作 遇到的困难 陈惠霖 完成注册界面 好友界面 无 侯晓龙 了解数据库使用 帮助他人建立数据库 无 周楚池 完成登录界面+管理员界面初 ...
- aspnetcore webapi 解决发布以后每隔一段时间请求变缓慢
项目:netcore webapi 3.1 平台:windows server 2008 r2 服务器:IIS 7.5 项目发布到IIS以后第一次请求特别慢大概7.8秒,然后每隔5分钟请求一次大概2. ...
- 【题解】P1852 跳跳棋
link 题意 跳跳棋是在一条数轴上进行的.棋子只能摆在整点上.每个点不能摆超过一个棋子.棋盘上有3颗棋子,分别在 \(a,b,c\) 这三个位置.我们要通过最少的跳动把他们的位置移动成 \(x,y, ...
- 【Codeforces 809E】Surprise me!(莫比乌斯反演 & 虚树)
Description 给定一颗 \(n\) 个顶点的树,顶点 \(i\) 的权值为 \(a_i\).求: \[\frac{1}{n(n-1)}\sum_{i=1}^n\sum_{j=1}^n\var ...
- SSM框架中常用的注解及含义
@Controller---使用它标记在一个类上,dispatcher会扫描使用该注解类的方法,并检测该方法是否使用了@RequestMapping注解,加上RequestMapping注解的方法才是 ...