以下是top -b
Mem: 95752K used, 29164K free, 0K shrd, 0K buff, 35176K cached
CPU: 5% usr 9% sys 0% nic 0% idle 0% io 0% irq 84% sirq
我需要持续监控sirq
,如何在shell脚本(sh)中执行此操作?
此致 Yuvi
答案 0 :(得分:0)
我会用c
使用fork()一个pipe()和一个execl()
1.create pipe()
2.do fork()
3.son。处理execl()输出并发送到管道
4.father。等待,接收并显示所需的字段
这一切都在循环中
答案 1 :(得分:0)
请参阅Linux内核proc.txt document的第1.8节。同样具有指导意义的是busybox top source。来自 proc.txt 文档的第1.8节,
1.8 / proc / stat
中的其他内核统计信息有关内核活动的各种信息 / proc / stat文件。此文件中报告的所有数字都是聚合 自从系统首次启动。快速查看,只需捕获文件即可。
“softirq”行给出了自启动时间以来服务的softirq数量 可能的系统softirqs。第一列是所有的总和 softirqs服务;每个后续列都是该特定的总和 软中断。
因此,以下命令获取启动后的总数,
cat /proc/stat | grep softirq | awk '{print $2}'
您必须在脚本中进行一些数学运算才能获得 delta 。
每个CPU
行都有 softirq 值。这是第八项,并再次手动增加时间。
cat /proc/stat | grep cpu[^0-9] | awk '{ print $8}'
如果您愿意,可以单独选择每个 CPU 。我相信人们可以提出更好的剧本,但我认为他们会展示校长。