📅  最后修改于: 2023-12-03 14:57:38.232000             🧑  作者: Mango
在开发应用程序时,对 CPU 的使用情况进行监控和记录是非常重要的,以便更好地优化和调试程序。本文将介绍如何使用 Shell/Bash 脚本来记录进程的 CPU 使用情况。
在开始编写脚本之前,需要安装 sysstat
工具包。在 Ubuntu 系统上,可以使用以下命令进行安装:
sudo apt-get install sysstat
以下是一个简单的 Shell/Bash 脚本,用于监控和记录某一进程的 CPU 使用情况:
#!/bin/bash
# 设置要监控的进程名
process_name="my_process"
# 记录上一次 CPU 时间
prev_total=0
prev_idle=0
while true; do
# 读取进程的 CPU 时间
pid=$(pgrep $process_name)
stat_file="/proc/$pid/stat"
read utime stime <<< $(awk '{print $14+$15, $16+$17}' $stat_file)
# 计算 CPU 使用率
total=$(grep -w cpu /proc/stat | awk '{print $2+$3+$4+$5+$6+$7+$8}')
idle=$(grep -w cpu /proc/stat | awk '{print $5}')
if [[ $prev_total != 0 ]]; then
total_diff=$(( $total - $prev_total ))
idle_diff=$(( $idle - $prev_idle ))
cpu_usage=$(awk "BEGIN {printf \"%.2f\", 100*($total_diff-$idle_diff)/$total_diff}")
echo "$(date +%s), $cpu_usage%"
fi
# 更新上一次 CPU 时间记录
prev_total=$total
prev_idle=$idle
# 暂停一秒
sleep 1
done
该脚本首先设置要监控的进程名称,然后在一个无限循环中不断读取进程的 CPU 时间,并计算 CPU 使用率。最后,它会记录 CPU 使用率的时间戳和数值,并每秒钟暂停一次。
将脚本保存为 cpu_monitor.sh
并赋予执行权限,然后使用以下命令运行它:
./cpu_monitor.sh
脚本将持续运行,记录进程的 CPU 使用情况。在需要停止监控时,可以按 Ctrl + C
终止脚本。
使用上述 Shell/Bash 脚本,您可以很容易地记录某一进程的 CPU 使用情况,并据此进行进一步的分析和优化。希望这篇文章能够对开发者们有所帮助!