iostat的字段解释:
1、r/s 和w/s分别表示每秒的读IO和写IO,两者加起来就是IOPS
2、rKB/s和wKB/s表示每秒的读速率和写速率,同样的IOPS,大块的速率高,小块的速率低,由于在虚拟存储里面,大块的IO都会被切成128K块大小的IO,所以只看r/s和w/s就可以了。
3、svctm是硬盘真正的IO时延,不包括IO请求在队列里面排队的时间。
4、r_await和w_await分别表示读时延和写时延,包括了IO请求在队列里面排队的时延。
5、a_await表示IO时延,是读和写一起统计的时延,同样包括了IO请求在队列里面排队的时延。
有效排查思路&及解决方案
1、ssh登录对应卡盘的主机后台,输入命令(不影响业务)
- iostat -d -x 1 5 | grep -v dm
复制代码可以得到下图所示,sda,sdd为卡盘
2、当前没有现象,则可以查看对应日期的黑匣子日志, /sf/log/blackbox/$day/LOG_iostat.txt ($day代表对应的日期数字),查看对应的时间磁盘的状态即可,如果iops不高但是%util持续很高则可判断是卡慢盘
3、查看 /sf/log/$day/kernel.log日志,检查是否有 Input/Output Timeout的日志,是否有 Input/Output error的日志。如果有则可以判断是卡慢盘
4、检查smartctl 查看硬盘是否有坏道,执行命令smartctl -A /dev/sdX 【把sdX换成硬盘的符号】,其中 Reallocated_Sector_Ct 和 Current_Pending_Sector 两个字段表示已重定向和未重定向的坏道,很多时候,坏道或坏块会造成硬盘卡慢。
7、非sas3008卡,可以查看raid卡日志(日志打印方法根据卡型号有差异);过滤‘reset’(或其他字段,与硬件部或厂商对齐),查看是否出现告警或错误信息判断是否为raid卡异常导致的出现卡慢盘告警
8、若都不满足上述情况则是平台误判了,如果是直通的磁盘可以检查除磁盘报错主机以外的其他主机的副本完整性,其他主机副本完整可以尝试重新插拔磁盘进行观察,第二次出现卡慢再确认为卡慢后可返修该盘
若已经确认是卡慢盘,但是没有替换的按钮,处理方案见下面的链接