对于IO问的分析思路以及命令实践

概念

  • 进程状态
    • R是running 或 runable 的缩写,表示进程在CPU的就绪队列中,正在运行或者正在等待运行
    • D是Disk sleep的缩写,也就是不可中断状态睡眠,一般表示进程正在跟硬件交互,并且交互过程不允许其他进程或中断打断
    • Z是Zombie的缩写,它表示进程实际上已经结束了,但父进程还没回收它的资源
    • S是interruptible sleep 也就是可中断状态睡眠,它正在等待事件的唤醒转变为R状态
    • l是Idle的缩写,也就是空闲状态,用在不可中断睡眠的内核线程上。D是硬件交互,I是内核空闲,D占用CPU,I不占用
    • 丅暂停
    • X DEAD 死亡进程
  • 信号:SIGSTOP 暂停 SIGCONT 继续

  • 新工具dstat :可以同时观察 cpu 磁盘 网络以及内存使用情况
//每秒输出10组数据
dstat 10 1 
  • pidstat 参数作用
//每秒输出20组数据 -d 磁盘操作
pid -d -p 1 20
  • strace 进程追踪:变为了僵尸进程的进程是无法为追踪的
//追踪进程id
strace -p pid
  • 不能追踪只能使用其他工具
//记录代码段日志 回车进入调用关系
perf record -g
perf report
  • 使用pstree查看调用级别
//查看某个进程占用pid
pstree -aps pid
  • D状态是系统的一种保护机制,为了保护硬件间的交互不被打断。