Como registrar o valor máximo de swap durante o período?

0

Eu tenho um script que consome muita memória swap.

Como posso medir a carga máxima de troca durante o período de execução do script?

Existe alguma ferramenta específica do bash cli para minha tarefa?

    
por Paul Serikov 31.10.2018 / 14:47

2 respostas

0

#!/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
    
por 31.10.2018 / 18:16
0

Bem, você pode usar o shell script para encontrar o valor máximo de swap de memória usada.

#! /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

Inicialmente eu defino max=0 e escrevi a saída para algum arquivo max_value.txt .

j=$(free -m | grep Swap| awk -F ' ' '{print $3}');

Esta linha armazenará o valor da memória livre swap disponível. E a condição if irá comparar este valor com max se for maior que ele irá atualizar o valor de max e escrever no arquivo max_value.txt .

Agora estou verificando a memória de troca livre constantemente para que possa consumir mais CPU para executar este script. No entanto eu tenho comentado a linha sleep 1 você pode usá-lo para reduzir o consumo de CPU (eu verifiquei no meu laptop houve redução de CPU consumo de 10% para 1%), mas pode acontecer que você não fique exato resultado. Se a variação em used swap memory não for repentina, você poderá obter um resultado aproximado.

    
por 31.10.2018 / 19:17

Tags