Linux性能监控工具iostat解析

1.iostat命令详解

CPU 内存 磁盘 网络 四大子系统

1.1 查看提供iostat命令的软件包

yum provides "*/iostat"
yum -y install systat

iostat 1 显示实时的数据
iostat  结果自系统启动以来的平均值

1.2 iostat命令CPU指标

%user		应用程序消耗CPU资源占比
%nice		进程优先级调整占用CPU资源
%system		内核占用CPU过高
%iowait		IO的等待占用CPU时间片,高说明CPU因为IO原因增高。IO的等待,磁盘无法及时处理,一直在CPU的队列中等待。
%steal		与虚拟化有关,用于特殊指令集的转换,硬件辅助虚拟化提高了虚拟化效率。
%idle		cpu的空闲率

单一程序一瞬间只能运行在一颗CPU上

1.3 dd命令测试存储性能

dd if=/dev/zero of=/tmp/test bs=4k count=102400 oflag=direct        //direct: 直接写入硬盘,绕过缓存
sysctl -w vm.drop_caches=3                                         //清空缓存

1.4 查看CPU性能

mpstate -P ALL 1   			                              //查询CPU的试用情况,1代表每秒显示一次。
ps axo %cpu,%mem,pid,comm,psr | grep str                 //查询cpu上运行了哪些应用程序

单一的应用程序,仅运行在一颗特定的处理器上,不会切换到其他处理器。可以指定一个应用程序运行在指定的处理器上。如果有两个应用程序运行在一个cpu上,即便其他处理器空闲,也不会切换到其他cpu上,可以人为切换。

1.5 衡量硬盘的性能指标

衡量硬盘的性能指标:
1.IOPS 每秒处理的IO数目 小IO 小于64k
2.带宽 每秒写入的数据量 MB/s 大IO 大于256k
3.时延 一个IO处理所花费的时间

单盘的IOPS是有标称的,

如果客户的性能要求是20000的IOPS,如果全部采用的是SAS硬盘,每块SAS硬盘的标准是300,则如何规划存储,需要多少块硬盘。

300*30/(0.8+0.2/0.03)
----------------------------- =IOPS
100%-30%=70%

1.6 iostat命令IO性能指标

tps	每秒中处理的数目
kB_read/s	每秒读速率
kB_wrtn/s	每秒写速率
kB_read		自开机以来一共处理的读请求
kB_wrtn		自开机以来一共处理的写请求

IO大小计算公式
IO大小=(kB_read/s+kB_wrtn/s)/tps

iostate -d /dev/vda 1 10
iostate -x /dev/vda 1 5			//显示更多扩展信息
r/s								//每秒读请求的数量
w/s								//每秒写请求的数量
sec/s							//每秒读写的总扇区数
rsec/s							//每秒读的扇区数
wsec/s							//每秒写的扇区数
rqm/s							//每秒请求的io数量
rrqm/s							//每秒读请求的io数量
wrqm/s							//每秒写请求的io数量
%rrqm							//读请求的百分比
%wrqm							//写请求的百分比
areq-sz							//IO请求的平均大小
rareq-sz						//读IO请求的平均大小
wareq-sz 						//写IO请求的平均大小
await							//IO请求的平均等待时间
r_await							//读IO请求的平均等待时间
w_await							//写IO请求的平均等待时间
aqu-sz							//队列里面一共有多少个请求
svctm							//平均每个IO的服务时间
%util								//IO占用的百分比

顺序业务
%util 应接近100%
rkb/s,wkb/s应达到通道理论带宽
avarg-sz应等于上层业务的Block大小

随机业务
r/s,w/s应与理论计算所得的IOPS值相符
avequ-sz应达到适当的值(小于10)
await应小于30ms

你可能感兴趣的:(Linux,iostat,io性能分析,linux性能)