スワップメモリを大量に消費するスクリプトがあります。
スクリプトの実行中に最大スイッチング負荷をどのように測定できますか?
私の仕事に適した特定のbash cliツールはありますか?
答え1
#!/bin/bash
trapexit() {
echo -e "\nmax swap usage is $MAXUSAGE kb"
exit 0
}
trap trapexit SIGINT
while true; do
CURUSAGE=`free |awk '/Swap/{print $3}'`;
if [[ $CURUSAGE -gt $MAXUSAGE ]]; then
MAXUSAGE=$CURUSAGE;
fi
done
答え2
その後、シェルスクリプトを使用して使用されている最大メモリ量を見つけることができますswap
。
#! /bin/bash
max=0
echo "$max" > max_value.txt
while true
do
#sleep 1
j=$(free -m | grep Swap| awk -F ' ' '{print $3}');
if [ "$max" -lt "$j" ]; then
max="$j";
echo "$max" > max_value.txt
fi
done
max=0
最初は、出力をいくつかのファイルに設定して記録しますmax_value.txt
。
j=$(free -m | grep Swap| awk -F ' ' '{print $3}');
この行は利用可能なメモリ値を保存しますswap
。 if条件はこの値をmax
値と比較し、大きい場合は値を更新してファイルmax
に書き込みます。max_value.txt
このスクリプトを実行するためにより多くのメモリを消費できるように、利用可能なスワップメモリを確認し続けますCPU
。しかし、この行をコメントアウトしたが、sleep 1
これを使用してCPU消費を減らすことができますが(ノートブックで確認してみると、消費が10%からCPU
1%に減少しました)、正確な結果が得られないことがあります。変化がused swap memory
突然でない場合は、おおよその結果を得ることができます。