Иногда при настройке мониторинга на малонагруженных серверах нужно протестировать графики и дашборды, добавив искусственную нагрузку. Устанавливать отдельные утилиты вроде
stress или stress-ng не всегда хочется. К счастью, это можно сделать встроенными средствами - через dd, sha1sum, yes, /dev/zero, /dev/urandom и другие.▪️ Нагрузка на диск и CPU одновременно. Сжимаем случайные данные и пишем во временный файл:
while true; do
dd if=/dev/urandom count=30M bs=1 | bzip2 -9 > /tmp/tempfile
rm -f /tmp/tempfile
done
/dev/urandom → нагрузка на диск
bzip2 -9 → нагрузка на CPU
count=30M - объем данных
-9 - максимальная степень сжатия
Изменяйте параметры, чтобы регулировать силу нагрузки.
▪️ Только диск: оценка скорости записи. Быстрое тестирование производительности диска:
sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync
Вывод покажет, с какой скоростью пишутся 1 ГБ данных.
▪️ Только CPU: простейшие варианты.
Нагрузка на одно ядро:
dd if=/dev/zero of=/dev/null
Параллельная нагрузка на несколько ядер:
cpuload() {
dd if=/dev/zero of=/dev/null &
dd if=/dev/zero of=/dev/null &
}
cpuload; read; pkill dd
Либо:
sha1sum /dev/zero
Для нескольких ядер:
seq 4 | xargs -P0 -n1 timeout 10 sha1sum /dev/zero
▪️ Простая нагрузка в пространстве ядра
seq 4 | xargs -P0 -n1 timeout 10 yes > /dev/null
Запускается yes, который генерирует бесконечный вывод. Отлично грузит CPU в режиме ядра.
▪️ Загрузка памяти. Скрипт на Python, резервирующий 1 ГБ RAM:
python3 -c 'a="a"*1024**3; input()'
Можно менять объем, изменяя 1024**3.
#linux #monitoring
🧑💻 NetworkAdmin