将一段时间内的 CPU/RAM 使用情况日志写入 CentOS 上的文件

将一段时间内的 CPU/RAM 使用情况日志写入 CentOS 上的文件

我正在寻找一个应用程序或代码行,可以让我观察一个过程,将信息保存在多个变量中,然后将收集到的信息放在一个文件中。

我一直在尝试各种方法,top但都没有成功。我正在运行几个 CentOS 虚拟服务器,VM 有 2GB RAM、2 个处理器。

一个在指定的时间内运行的脚本,同时在文本文件中写入包含信息的行,以便最后我可以得到一个包含数据的表格。

我要对服务器进行压力测试,并且我希望获得一些数据来进行统计。

答案1

标准ps够了。

while true; do ps o pcpu,rsz -p $pid | tail -n1 >>usage.log; sleep $interval; done

结果:

0.0  3352
0.3 31640
0.4 36924
0.5 36052
...

第一个字段是 CPU 使用率(以 % 为单位),第二个字段是物理内存使用率(以 KB 为单位)。

答案2

如果你关心精确的时间并且希望以百分比表示 CPU:

watch --precise -n 1 'top -b -n 1 -p [PID] | tail -n 1 | awk "{print \$9}" >> [PID].log'

答案3

我会建议sadc/sar

答案4

以下命令获取特定进程 (pid) 每 40 秒的平均 CPU 和内存使用情况

pidstat 40 -ru -p <pid>

我的情况的输出(前两行表示 CPU 使用率,后两行表示内存):

02:15:07 PM       PID    %usr %system  %guest    %CPU   CPU  Command
02:15:47 PM     24563    0.65    0.07    0.00    0.73     3  java

02:15:07 PM       PID  minflt/s  majflt/s     VSZ    RSS   %MEM  Command
02:15:47 PM     24563      6.95      0.00 13047972 2123268   6.52  java

相关内容