getdelays 工具使用
1. getdelays 工具使用
任务在等待某些内核资源可用时,会造成延时。例如一个可运行的任务可能会等待一个空闲CPU来运行。
1.1 getdelays工具 生成使用
#下载内核源码 比如 :linux-5.8.6 :https://download.csdn.net/download/tan1666/82501446cd linux-5.8.6/tools/accountinggcc -I/usr/src/linux/include getdelays.c -o getdelays# pid 查看 ps aux # -d: print delayacct stats - p pid sudo ./getdelays -d -p 12
CPU | count | real total | virtual total | delay total | delay average |
---|---|---|---|---|---|
内核中的来源 | task->sched_info.pcount | task->utime + task->stime | task->se.sum_exec_runtime | task->sched_info.run_delay | task->cpu_delay_total/1000000/task->cpu_count |
如何计算得来的, 2.1 技术参考 该链接有详细介绍。 这里我就记录我认为重点部分。
task->delays->blkio_count
task结构体所在路径:
表项 | 功能 |
---|---|
IO delay | 表示一个任务task等待IO资源而阻塞的次数和任务等待IO阻塞的时间。 |
SWAP delay | 表示一个任务task访问的内存在交换设备上时产生的swapin次数和任务等待内存swapin的延迟时间。 |
RECLAIM delay | 表示一个任务task分配内存时产生的内存回收次数和任务等待内存回收的延迟时间。 |
THRASHING delay | 表示一个任务task在访问刚刚被加入非活跃状态缓存页(页颠簸)的次数和等待时间。 |
2. 总结
了解了该工具得使用。 那该工具什么时候使用,如何使用?留着后期做分析。😦
进入linux大门可以看哈这个视屏:https://ke.qq.com/course/417774?flowToken=1042383
学习还是得靠自己。❤️
2.1 技术参考
参考链接1:https://www.cnblogs.com/liuhailong0112/p/15379397.html