如何记录期间的掉期最大值?

如何记录期间的掉期最大值?

我有一些消耗大量交换内存的脚本。

如何测量脚本执行期间的最大交换负载?

有没有适合我的任务的特定 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

那么你可以使用 shell 脚本来查找所使用的内存的最大值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 条件会将此值与maxvalue 进行比较,如果大于,则更新该值max并将其写入max_value.txt文件。

现在,我不断检查可用交换内存,以便它可以消耗更多CPU来运行此脚本。不过,我已经评论了这一行,sleep 1您可以使用它来减少 CPU 消耗(我在我的笔记本电脑上检查过,消耗量从 10% 减少CPU到 1%),但您可能不会得到准确的结果。如果变化used swap memory不是突然的,那么您可以获得近似结果。

相关内容