Seu script está usando muitos recursos da CPU porque é executado continuamente, o que é ineficiente. Para evitar isso, adicione uma chamada a sleep
, o que significa que ela só funcionará uma vez a cada 5 segundos, o que é muito mais eficiente. Provavelmente, você pode estender isso para mais, como 60 segundos, dependendo de quão freqüente / preciso ele precisa ser.
Aqui está o que parece com esse extra sleep 5
:
#! /bin/bash
touch /tmp/mempeak
while true
do
A=$(free -m | grep "Mem"|awk '{printf "%.2f",/1000-$NF/1000}')
B=$(cat /tmp/mempeak)
A=$(awk -va=$A -vb=$B 'BEGIN {print (a>b)?a:b }')
echo $A > /tmp/mempeak
sleep 5
done
Se você quiser evitar gravações em disco excessivas (por exemplo, para reduzir o desgaste de SSD), você pode alterar seu script para que ele grave somente no disco quando o valor realmente mudar e talvez coloque o arquivo de saída em um sistema de arquivos temporário na memória também.