TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #2966 9.01K
Когда настраиваешь мониторинг на ненагруженных машинах, хочется дать какую-то среднюю нагрузку, чтобы посмотреть, как выглядят получившиеся графики и дашборды. Для стресс тестов есть специальные утилиты, типа stress. Но чаще всего не хочется что-то устанавливать для этого.

Для этих целей в Linux часто используют псевдоустройства /dev/urandom или /dev/zero, направляя куда-нибудь их вывод. Вот простой пример:

# while true; do dd if=/dev/urandom count=30M bs=1 \
| bzip2 -9 > /tmp/tempfile  ; rm -f /tmp/tempfile  ; done

Получилась универсальная нагрузка, которая идёт как на дисковую подсистему, так и на процессор. Изменяя размер файла (30M) и степень сжатия (-9) можно регулировать эту нагрузку. Чем больше размер файла, тем больше нагрузка на диск, чем больше уровень сжатия, тем больше нагрузка на процессор.

Можно только диски нагрузить и проверить скорость записи. Эту команду я постоянно использую, чтобы быстро оценить, с какими дисками я имею дело:

# sync; dd if=/dev/zero of=/tmp/tempfile bs=1M count=1024; sync

Увеличивая размер блока данных (1M) или количество этих блоков (1024) можно управлять характером нагрузки и итоговым объёмом записываемых файлов.

Если хотите нагрузить только 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

Процессы запустятся в фоне, по нажатию Enter в консоли, завершатся. Если у вас нет pkill, используйте killall. Процессор нагрузить проще всего. Можно также использовать что-то типа такого:

# sha1sum /dev/zero

Это так же нагрузит одно ядро. Для нескольких, запускайте параллельно в фоне несколько процессов расчёта. Вот ещё один вариант нагрузки на 4 ядра с ограничением времени. В данном случае 10 секунд:

# seq 4 | xargs -P0 -n1 timeout 10 yes > /dev/null

Причём эта нагрузка будет в большей степени в пространстве ядра. А показанная выше с sha1sum в пространстве пользователя. Пример на 2 ядра:

# seq 2 | xargs -P0 -n1 timeout 10 sha1sum /dev/zero

Если убрать timeout, то нагрузка будет длиться до тех пор, пока вы сами её не остановите по Ctrl-C.

Для загрузки памяти в консоли быстрее всего воспользоваться python3:

# python3 -c 'a="a"*1024**3; input()'

Съели 1G памяти.

#bash #linux #terminal
  • 👍 118
  • 👎 3
More from @srv_admin
  1. Oct 5, 2026В комментариях к недавней заметке про рабочее место один читатель в комментариях упомянул…
  2. Oct 2, 2026Мне Селектел прислали прикольный светильник, которым я сейчас стал постоянно пользоваться.…
  3. Oct 2, 202620 октября в 12:00 (мск) пройдёт бесплатный вебинар «Мониторинг событий безопасности в MWS…
  4. Oct 2, 2026На днях задачка небольшая была по сохранению команд пользователя в консоли. В ней ничего о…
  5. Oct 1, 2026Делал на днях некоторые покупки компьютерных комплектующих и периферии. От новых цен натур…
  6. Oct 1, 2026Вся правда о безопасности контейнеров 8 октября в 11:00 приходите на стрим «Лаборатории Ка…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →