メモリとCPUを出力するShellスクリプト
2020/10/13
サーバーの負荷テストを行う際に、CPUやメモリの使用割合を記録するスクリプトです。
使用しているCPU割合
vmstatを利用してCPUの使用割合をログに出します。 下記をshellスクリプトとして作成し、実行すると指定のファイルパスにログが出力されます。
cpu.sh
#!/bin/bash
LOGFILE="/home/ec2-user/cpu.log" #ログファイルパス
TOTAL=0
while true
do
VMSTAT=`vmstat 1 2 2> /dev/null | tail -1`;
US=`echo ${VMSTAT} | awk '{print $13}'`;
SY=`echo ${VMSTAT} | awk '{print $14}'`;
TOTAL=`expr ${US} + ${SY}`
echo "$(date +'%Y/%m/%d %H:%M:%S'),${TOTAL}" >> ${LOGFILE}
done
使用しているmemory割合
freeを利用してメモリの使用割合をログに出します。 下記をshellスクリプトとして作成し、実行すると指定のファイルパスにログが出力されます。
memory.sh
#!/bin/bash
LOG_FILE=/home/ec2-user/memory.log #ログファイルパス
INTERVAL=1 #出力間隔(s)
while true
do
TOTAL=`free | grep "Mem:" | awk '{print $2}'`
AVAILABLE=`free | grep "Mem:" | awk '{print $7}'`
USED=`expr ${TOTAL} - ${AVAILABLE}`
RATE=`expr 100 \* ${USED} / ${TOTAL}`
echo "`date +'%Y/%m/%d %H:%M:%S'`,${RATE}" >> ${LOG_FILE}
sleep ${INTERVAL}
done