6 linux scheduling timing linux-kernel
好吧,对于我的编程任务(是的,我们都可以转向我们认为适合帮助的任何源)我必须找出进程花费阻塞/休眠/运行的时间.
我的第一次尝试是创建一个bash脚本......看起来像这样:
for i in `ls /proc/ | egrep [0-9]+`
do
cat /proc/$i/status | grep State
done
Run Code Online (Sandbox Code Playgroud)
但后来所有问题都报告了睡眠状态.加上这种方法需要我疯狂地进行调查......所以运行测试可能会改变结果......(呃)
现在用syscalls编译新版本的linux或者跟踪进程状态的方法并不是不可能的.我唯一担心的是试图找出如何跟踪不断变化的过程状态,并确保我不会错过任何东西......
你可以用“时间”
$ time ls /usr/bin
real 0m4.756s
user 0m0.051s
sys 0m0.078s
Run Code Online (Sandbox Code Playgroud)
real - sys = 等待 I/O 的总时间(睡眠/阻塞)
sys - user = 系统调用所花费的时间
user = 仅执行程序中的指令所花费的时间(可能包括动态链接开销,对此不确定)