此次,我是如何監控服務器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

生成圖

相關文章
相關標籤/搜索