背景
在新项目 A 中, 要结合业务做性能测试. 对于做过 N 次性能测试的我, 这次有些巧妇有难无米之炊的感觉. 以往的项目, 服务器都是部署在 AWS 或者阿里云, 像这样的云服务器厂商是可以通过轻松配置各种 Dashboard 来实时监控整个系统服务器的各种新能. 然而, 这一次, 服务器不在云上, 并且不允许连接外网. 那出一个类似的服务器 CPU 和内存实时使用情况的折线图, 该如何做呢?
思路
以结果为导向, 需要的是一张压测时服务器 CPU 和内存的折线图, 那么如何画图? Excel 可以插入类似的折线图, 那么数据怎么来? Linux 中有些命令可以记录当时的服务器 CPU 和内存的情况, 如果有脚本或者命令把这些数据实时记录下来, 并且把这些数据导出到 CSV 文件, 然后借助 Excel 就能得我们要的结果.
过程
脚本
- #!/bin/bash
- fileName=$1
- echo "CPU%,MEM%,TIME"> $fileName
- for (( i = 0; i <3000; i++ )) do
- output=`top -b -n1 | grep "Cpu(s)" | awk '{print $2","}' | tr -d '\n' && free -m | grep 'Mem' | awk '{print $3/$2 * 100","}' | tr -d '\n' && date | awk '{print $4}'`>temp
- echo "$output">> $fileName
- sleep 1
- done
生成图
来源: https://www.cnblogs.com/chenyongblog/p/11831498.html