その期間のスワップの最大値をどのように記録しますか?

その期間のスワップの最大値をどのように記録しますか?

スワップメモリ​​を大量に消費するスクリプトがあります。

スクリプトの実行中に最大スイッチング負荷をどのように測定できますか?

私の仕事に適した特定の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%からCPU1%に減少しました)、正確な結果が得られないことがあります。変化がused swap memory突然でない場合は、おおよその結果を得ることができます。

関連情報