해당 기간 동안의 스왑 최대값을 어떻게 기록하나요?

해당 기간 동안의 스왑 최대값을 어떻게 기록하나요?

스왑 메모리를 많이 소모하는 스크립트가 있습니다.

스크립트 실행 중 최대 스위칭 로드를 어떻게 측정할 수 있나요?

내 작업에 적합한 특정 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갑작스럽지 않다면 대략적인 결과를 얻을 수 있습니다.

관련 정보