Spaces:
Running
Running
stlaurentjr
commited on
Commit
•
8cc9cda
1
Parent(s):
a3030da
Upload monitor_usage.sh
Browse files- scripts/monitor_usage.sh +36 -0
scripts/monitor_usage.sh
ADDED
@@ -0,0 +1,36 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/bash
|
2 |
+
|
3 |
+
# Установите пороги использования ЦПУ и ГПУ.
|
4 |
+
CPU_THRESHOLD=10
|
5 |
+
GPU_THRESHOLD=10
|
6 |
+
|
7 |
+
# Счетчик, сколько раз подряд нагрузка была ниже порога
|
8 |
+
LOW_USAGE_COUNT=0
|
9 |
+
|
10 |
+
while true; do
|
11 |
+
# Получаем текущую загрузку ЦПУ.
|
12 |
+
CPU_USAGE=$(mpstat 1 1 | awk '/Average/ {print 100 - $12}')
|
13 |
+
# Преобразуем десятичный разделитель в точку, если он в формате запятой
|
14 |
+
CPU_USAGE=$(LC_NUMERIC=C printf "%.0f\n" $CPU_USAGE)
|
15 |
+
|
16 |
+
# Получаем текущую загрузку ГПУ (предполагая использование nvidia-smi для NVIDIA GPUs)
|
17 |
+
GPU_USAGE=$(nvidia-smi --query-gpu=utilization.gpu --format=csv,noheader,nounits)
|
18 |
+
|
19 |
+
# Проверяем, ниже ли загрузка пороговых значений.
|
20 |
+
if [ $(echo "$CPU_USAGE < $CPU_THRESHOLD" | bc) -eq 1 ] && [ $(echo "$GPU_USAGE < $GPU_THRESHOLD" | bc) -eq 1 ]; then
|
21 |
+
# Увеличиваем счетчик низкой нагрузки.
|
22 |
+
((LOW_USAGE_COUNT++))
|
23 |
+
else
|
24 |
+
# Если нагрузка выше порога, сбрасываем счетчик.
|
25 |
+
LOW_USAGE_COUNT=0
|
26 |
+
fi
|
27 |
+
|
28 |
+
# Если низкая нагрузка была обнаружена в течение 60 минут, останавливаем скрипт.
|
29 |
+
if [ $LOW_USAGE_COUNT -ge 60 ]; then
|
30 |
+
runpodctl stop pod ${RUNPOD_POD_ID}
|
31 |
+
break
|
32 |
+
fi
|
33 |
+
|
34 |
+
# Пауза в одну минуту перед следующей итерацией.
|
35 |
+
sleep 60
|
36 |
+
done
|