最近问题调试用到了几个资源监控命令,记录一下
问题简单说就是linux下面一个发包线程会卡顿几秒钟,造成报文发送中断,通过监控最终发现是io资源紧张影响了线程写日志,进而阻塞了线程发包
1. top 查看cpu 内存等资源以及进程/线程的运行情况
top -b -d 1 -i >> top.log //不接受交互,一秒钟打印一次输出,并将其重定向到log文件
2. mpstat cpu的使用情况
mpstat -P ALL >> mpstat.log //cpu各个核心的使用情况,并保存到文件,top 命令后输入1也可以实现该功能
3. iostat 查看系统io的使用情况
iostat -x -t 1 >> iostat.log //一秒钟打印一次各个磁盘的io使用情况,并保存到log
4. pidstat 查看所有进程或是单个进程的情况
pidstat -d 1 >> pidstat.log //一秒钟打印一次所有进程的运行情况到,包括io使用情况到文件
5. fio 磁盘读写压力测试工具
6. pstack 是一个shell脚本,用于打印正在运行的进程的栈跟踪信息
当使用top发现有线程卡住(cpu利用率100%),可以使用pstack查看线程调用栈,找到出错的地方
https://www.cnblogs.com/kongzhongqijing/articles/7685699.html