快速排查线上应用磁盘IO过高
实际开发工作,在应用中常常需要对文件进行各种读写操作,不当的文件读写操作容易导致磁盘IO过高、文件读写慢、文件资源竞争等问题,这些都可能会对整个系统产生严重影响,甚至导致系统故障。
通过在线Demo)故障注入平台,注入例如
文件读写延时200ms
等故障来模拟真实环境中产生的因磁盘IO过高问题。
本指南将展示如何使用 Kindling-OriginX 快速定位并排查应用因磁盘I/O导致故障的根因所在,同时与目前处理应用磁盘IO过高的常用方法做一简单对比。
传统方式
在实际生产环境中,应用磁盘IO过高往往都是以CPU过高,占用大量CPU资源或应用产生阻塞等故障形式表现出来,难以快速发现和定位,从而无法快速使其恢复。
使用相关工具及命名分析排查
通过pidstat、iostat、iotop、vmstat、strace等命令查看各个进程的CPU情况、IO使用情况、iowait、磁盘使用率util等相关参数,或进一步获取更详细的系统日志。针对CPU高且Load高、CPU低且Load高等多种不同的情况分别进行分析。需要对应用及操作系统相关知识都有足够的积累,且要对相关问题有丰富的经验。
通过监控工具分析
通过监控数据发现磁盘IO问题,或辅助对磁盘问题进行诊断。这种方式需要有合适的监控数据,同时受数据粒度的影响,往往适合趋势性预警,在实际线上处置过程中并不能够提供有效的帮助。
代码分析
通过代码Review的方式,对应用中涉及磁盘读写的部分进行合理规划和代码设计,尽可能减少大文件和大批量碎片文件的操作,以达到提前规避问题的发生的目的。这种方式一方面效率低,另一方面需要有丰富经验的人员参与,实际情况下这种方式也只能是提高代码质量的一种方式,并不可能成为解决应用磁盘问题的银弹。
使用Kindling-OriginX
Kindling-OriginX 对于线上应用磁盘I/O过高问题提供自动化、零侵入、高效便捷、极低性能损耗的解决方案。