【性能测试】 |
您所在的位置:网站首页 › 测试硬盘容量的工具 › 【性能测试】 |
一、磁盘I/O性能指标
有4个核心的磁盘I/O指标,如下表所示: 磁盘性能指标解释iostat -d -x 1 展示所有的磁盘I/O指标 使用率磁盘处理 I/O 的时间百分比%utilIOPS是指每秒的 I/O 请求数r/s+ w/s吞吐量每秒的 I/O 请求大小rkB/s+wkB/s 响应时间指 I/O 请求从发出到收到响应的间隔时间r_await+w_await观测磁盘的I/O性能指标:iostat 是最常用的磁盘 I/O 性能观测工具,它提供了每个磁盘的使用率、IOPS、吞吐量等各种常见的性能指标,当然,这些数据实际上来自 /proc/diskstats. iostat -d -x -k 1 通过查看 CPU 的 wa% 值来判断当前磁盘 IO 性能,如果这个数值过大,很可能是磁盘 IO 太高了,当然也可能是其他原因,例如网络 IO 过高等。 2、然后通过iostat -d -x -k 1 2 查看磁盘是否达到瓶颈(或者:iostat -x 1 2 )可以使用命令:iostat -dxk 1 2或者使用sar -d -p 1 2命令,实际使用中主要还是看 await 、 svctm 、 %util 参数 其中, “-d”参数代表查看磁盘性能,“-p”参数代表将 dev 设备按照 sda,sdb……名称显示,“1”代表每隔1s采取一次数值,“2”代表总共采取2次数值。 [sdk_test@ssdk1 server]$ iostat -d -x -k 1 2 Linux 2.6.32-431.11.15.el6.ucloud.x86_64 (ssdk1) 10/14/2016 _x86_64_ (4 CPU) Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util vda 0.00 0.19 0.00 0.65 0.04 3.37 10.41 0.00 0.78 0.41 0.03 vdb 0.00 5.85 0.29 1.13 6.23 27.93 48.06 0.00 1.44 0.41 0.06 Device: rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await svctm %util vda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 vdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 可以看到磁盘的平均响应时间80。磁盘响应正常,但是已经很繁忙了输出项的意义: rrqm/s:每秒这个设备相关的读取请求有多少被Merge了(当系统调用需要读取数据的时候,VFS将请求发到各个FS,如果FS发现不同的读取请求读取的是相同Block的数据,FS会将这个请求合并Merge); wrqm/s:每秒这个设备相关的写入请求有多少被Merge了。 rsec/s:每秒读取的扇区数;即delta(rsect)/s wsec/s:每秒写入的扇区数。即delta(rsect)/s rKB/s:每秒读K字节数。是rsec/s的一半,因为每扇区大小为512字节 ; wKB/s:每秒写K字节数。是wsec/s的一半 avgrq-sz 平均每次设备I/O操作的数据大小(扇区) avgqu-sz 是平均请求队列的长度。毫无疑问,队列长度越短越好。 await:平均每次设备I/O操作的等待时间(毫秒)。(衡量IO的响应速度)svctm:平均每次设备I/O操作的服务时间(毫秒)。即delta(use)/delta(rio+wio) %util:一秒中有百分之多少的时间用于I/O操作,或者说一秒中有多少时间I/O队列是非空的 (衡量 IO 的繁忙程度) 对于磁盘 IO 性能,一般有如下评判标准: (await,通俗理解就想我们去医院看病排队等待的时间,这个值和医生的服务速度(svctm)和你前面排队的人数(avgqu-sz)有关。一般地系统IO响应时间应该低于5ms,如果大于10ms就比较大了。 await 值的大小一般取决与 svctm 的值和 I/O 队列长度以 及I/O 请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘或者升级CPU来解决问题。(3)%util:%util 项的值也是衡量磁盘 I/O 的一个重要指标,衡量IO的繁忙程度,这个值越大,说明产生的IO请求较多,IO压力较大,我们可以结合%idle参数来看,如果 %idle < 70% 就说明 IO 比较繁忙了。也可以结合 vmstat 的 b 参数(等待 IO 的进程数)和 wa 参数(IO 等待所占 CPU 时间百分比)来看,如果 wa > 30% 也说明 IO 较为繁忙。 如果 %util 接近 100% ,表示磁盘产生的 I/O 请求太多,I/O 系统已经满负荷的在工作,该磁盘可能存在瓶颈。长期下去,势必影响系统的性能,可以通过优化程序或者通过更换更高、更快的磁盘来解决此问题。(当然如果是多磁盘,即使%util是100%,因为磁盘的并发能力,所以磁盘使用未必就到了瓶颈) 3、找出使用IO高的进程:iotop(1)通过 iotop 命令: iotop -oP 或者iotop (如果没有该命令,请通过 yum install iotop 进行安装。) # iotop Total DISK READ: 8.00 M/s | Total DISK WRITE: 20.36 M/s TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND 15758 be/4 root 7.99 M/s 8.01 M/s 0.00 % 61.97 % bonnie++ -n 0 -u 0 -r 239 -s 478 -f -b -d /tmp(2)通过pidstat命令:pidstat -d 1 (展示I/O统计,每秒更新一次) 之后可根据 PID 查看相关进程信息。 (3)但等待I/O也不一定说明它在疯狂读写磁盘。为了确定它确实读写很多,可以用/proc目录下的信息来定位 [root@myos ~]# cat /proc/27456/io rchar: 42857442 wchar: 35657666 syscr: 44932 syscw: 9744 read_bytes: 1530859520 write_bytes: 13824000 cancelled_write_bytes: 1249280 三、磁盘I/O和CPU及内存的关系iostat -c 查看部分 CPU 使用情况 一般会重点关注 %iowait 和 %idle,分别表示 CPU 等待 IO 完成时间的百分比和 CPU 空闲时间百分比。 如果 %iowait 较高,则表明磁盘存在 IO 瓶颈;如果 %idle 较高,则 CPU 比较空闲; 如果两个值都比较高,则有可能 CPU 在等待分配内存,瓶颈在内存,此时应该加大内存; 如果 %idle 较低,则此时瓶颈在 CPU,应该增加 CPU 资源。 四、其他相关磁盘查看命令 (1)fdisk -l :查看磁盘信息,包括磁盘容量,扇区大小,IO 大小等信息 (2)df :查看磁盘使用情况,通常看磁盘使用率 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |