此次,我是如何监控服务器CPU和内存的

背景

在新项目A中,要结合业务作性能测试。对于作过N次性能测试的我,此次有些巧妇有难无米之炊的感受。以往的项目,服务器都是部署在AWS或者阿里云,像这样的云服务器厂商是能够经过轻松配置各类Dashboard来实时监控整个系统服务器的各类新能。然而,这一次,服务器不在云上,而且不容许链接外网。那出一个相似的服务器CPU和内存实时使用状况的折线图,该如何作呢?shell

思路

以结果为导向,须要的是一张压测时服务器CPU和内存的折线图,那么如何画图?Excel能够插入相似的折线图,那么数据怎么来?Linux中有些命令能够记录当时的服务器CPU和内存的状况,若是有脚本或者命令把这些数据实时记录下来,而且把这些数据导出到csv文件,而后借助Excel就能得咱们要的结果。bash

过程

脚本

#!/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

生成图

相关文章
相关标签/搜索