CPU 및 / 또는 메모리 사용량이 80 %에 도달하면 프로세스를 종료하는 스크립트를 작성했습니다. 이 상황이 발생하면 종료 된 프로세스 목록이 작성됩니다. 개선하기 위해 무엇을 할 수 있습니까?
while [ 1 ];
do
echo
echo checking for run-away process ...
CPU_USAGE=$(uptime | cut -d"," -f4 | cut -d":" -f2 | cut -d" " -f2 | sed -e "s/\.//g")
CPU_USAGE_THRESHOLD=800
PROCESS=$(ps aux r)
TOPPROCESS=$(ps -eo pid -eo pcpu -eo command | sort -k 2 -r | grep -v PID | head -n 1)
if [ $CPU_USAGE -gt $CPU_USAGE_THRESHOLD] ; then
kill -9 $(ps -eo pid | sort -k 1 -r | grep -v PID | head -n 1) #original
kill -9 $(ps -eo pcpu | sort -k 1 -r | grep -v %CPU | head -n 1)
kill -9 $TOPPROCESS
echo system overloading!
echo Top-most process killed $TOPPROCESS
echo CPU USAGE is at $CPU_LOAD
else
fi
exit 0
sleep 1;
done
sleep 1
루프에 있어
while [ 1 ]
이 스크립트만으로도 CPU 사용량이 궁금합니다. 또한kill -9
지속적으로 실행되는 스크립트에서 3 번의 호출이 있습니까? 이것은 나에게 오한을 준다 ...