企业网站建设 管理 维护 请找,西安网站建设比较好的公司,网站建设 保密,旅游类网站做百度竞价前言在之前的博客中我们详细的说明了性能瓶颈的解决思路#xff0c;也详细介绍了Vmstat的使用#xff0c;今天我们就详细说说磁盘IO的那些事#xff0c;磁盘IO是我们最常遇到的瓶颈#xff0c;下面我们根据iostat详细聊聊磁盘IO一、磁盘IO性能指标1.1、每秒IO数(tps)对于磁…前言在之前的博客中我们详细的说明了性能瓶颈的解决思路也详细介绍了Vmstat的使用今天我们就详细说说磁盘IO的那些事磁盘IO是我们最常遇到的瓶颈下面我们根据iostat详细聊聊磁盘IO一、磁盘IO性能指标1.1、每秒IO数(tps)对于磁盘来说一次磁盘的连续读或者连续写称为一次磁盘 I/O, 磁盘的 IOPS 就是每秒磁盘连续读次数和连续写次数之和1.2、吞吐量( Throughput)指硬盘传输数据流的速度传输数据为读出数据和写入数据的和。其单位一般为 Kbps, MB/s 等。1.3、磁盘活动时间百分比( Utilization) %util磁盘处于活动时间的百分比即磁盘利用率磁盘在数据传输和处理命令(如寻道)处于活动状态。磁盘利用率与资源争用程度成正比与性能成反比。也就是说磁盘利用率越高资源争用就越严重性能也就越差响应时间就越长。一般来说如果磁盘利用率超过 70%应用进程将花费较长的时间等待 I/O 完成因为绝大多数进程在等待过程中将被阻塞或休眠。1.4、服务时间( ServiceTime) svctm指磁盘读或写操作执行的时间包括寻道旋转时延和数据传输等时间。其大小一般和磁盘性能有关 CPU/内存的负荷也会对其有影响请求过多也会间接导致服务时间的增加。如果该值持续超过20ms一般可考虑会对上层应用产生影响。1.5、I/O 等待队列长度( Queue Length)指待处理的 I/O 请求的数目如果 I/O 请求压力持续超出磁盘处理能力该值将增加。如果单块磁盘的队列长度持续超过2一般认为该磁盘存在I/O性能问题。需要注意的是如果该磁盘为磁盘阵列虚拟的逻辑驱动器需要再将该值除以组成这个逻辑驱动器的实际物理磁盘数目以获得平均单块硬盘的 I/O 等待队列长度。1.6、等待时间( Wait Time)指磁盘读或写操作等待执行的时间即在队列中排队的时间。如果I/O请求持续超出磁盘处理能力意味着来不及处理的 I/O 请求不得不在队列中等待较长时间。二、Iostat详解2.1、安装iostat命令1yum install sysstat -y2.2、iostat参数详解1234567[roottshare365 ~]# iostat --helpUsage: iostat [ options ] [ [ ] ]Options are:[ -c ] [ -d ] [ -N ] [ -n ] [ -h ] [ -k | -m ] [ -t ] [ -V ] [ -x ] [ -y ] [ -z ][ -j { ID | LABEL | PATH | UUID | ... } [ [...] | ALL ] ][ [...] | ALL ] [ -p [ [,...] | ALL ] ][roottshare365 ~]#我们最常用的是-C 显示CPU使用情况-d 显示磁盘使用情况-x 显示详细信息-k 以 KB 为单位显示-m 以 M 为单位显示2.3、iostat查看服务器IO情况12345678910111213[roottshare365 ~]# iostat -xLinux 2.6.32-431.el6.x86_64 (tshare365) 02/26/2015 _x86_64_ (1 CPU)avg-cpu: %user %nice %system %iowait %steal %idle0.03 0.00 0.15 0.04 0.00 99.78Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz avgqu-sz await svctm %utilsda 0.21 3.06 0.06 0.22 5.05 26.32 113.45 0.01 48.50 4.05 0.11scd0 0.00 0.00 0.00 0.00 0.00 0.00 8.00 0.00 0.88 0.88 0.00dm-0 0.00 0.00 0.26 3.28 4.95 26.32 8.84 1.35 382.60 0.31 0.11dm-1 0.00 0.00 0.00 0.00 0.03 0.00 8.00 0.00 5.88 1.29 0.00[roottshare365 ~]#cpu属性值说明%userCPU处在用户模式下的时间百分比。%niceCPU处在带NICE值的用户模式下的时间百分比。%systemCPU处在系统模式下的时间百分比。%iowaitCPU等待输入输出完成时间的百分比。%steal管理程序维护另一个虚拟处理器时虚拟CPU的无意识等待时间百分比。%idleCPU空闲时间百分比。备注如果%iowait的值过高表示硬盘存在I/O瓶颈%idle值高表示CPU较空闲如果%idle值高但系统响应慢时有可能是CPU等待分配内存此时应加大内存容量。%idle值如果持续低于10那么系统的CPU处理能力相对较低表明系统中最需要解决的资源是CPU。disk属性值说明rrqm/s: 每秒进行 merge 的读操作数目。即 rmerge/swrqm/s: 每秒进行 merge 的写操作数目。即 wmerge/sr/s: 每秒完成的读 I/O 设备次数。即 rio/sw/s: 每秒完成的写 I/O 设备次数。即 wio/srsec/s: 每秒读扇区数。即 rsect/swsec/s: 每秒写扇区数。即 wsect/srkB/s: 每秒读K字节数。是 rsect/s 的一半因为每扇区大小为512字节。wkB/s: 每秒写K字节数。是 wsect/s 的一半。avgrq-sz: 平均每次设备I/O操作的数据大小 (扇区)。avgqu-sz: 平均I/O队列长度。await: 平均每次设备I/O操作的等待时间 (毫秒)。svctm: 平均每次设备I/O操作的服务时间 (毫秒)。%util: 一秒中有百分之多少的时间用于 I/O 操作即被io消耗的cpu百分比备注如果 %util 接近 100%说明产生的I/O请求太多I/O系统已经满负荷该磁盘可能存在瓶颈。如果 svctm 比较接近 await说明 I/O 几乎没有等待时间如果 await 远大于 svctm说明I/O 队列太长IO响应太慢则需要进行必要优化。如果avgqu-sz比较大也表示有当前IO在等待。2.4、查看磁盘的吞吐量12345678910[roottshare365 ~]# iostat -d -kLinux 2.6.32-431.el6.x86_64 (tshare365) 02/26/2015 _x86_64_ (1 CPU)Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtnsda 0.28 2.51 13.07 214679 1119426scd0 0.00 0.00 0.00 132 0dm-0 3.51 2.46 13.07 210381 1119388dm-1 0.00 0.01 0.00 1188 0[roottshare365 ~]#tps该设备每秒的传输次数kB_read/s每秒从设备(drive expressed)读取的数据量kB_wrtn/s每秒向设备(drive expressed)写入的数据量kB_read读取的总数据量kB_wrtn写入的总数量数据量本博客至此介绍如有什么问题请留言