io总是跑高,导致机器告警,影响服务正常运行,就一步步排查。
1、 iostat -x 1 10,可以看到sda盘的io达到100%
2、iotop -oP,找到io比较多的线程 26850
3、pidstat -dt -p 26850 1,发现29032线程的每秒的读写比较多
4、printf "%x" 29032,得到16进制的值 7168
5、jstack 26850 | grep 7168 -A 30,找到这里感觉好像没什么用,这个堆栈完全就是线程池的一个调用,毫无帮助
6、strace -p 29032,看见了读写的文件,至此定位到具体问题。