Иногда для моделирования нагруженных условий работы программы или информационной системы, нужно уметь создавать искуственную нагрузку.
Создание нагрузки с помощью стандартных утилит
В Linux сделать такую нагрузку можно с помощью следующей команды:
while true; do dd if=/dev/urandom count=10M bs=1 | bzip2 -9 > /tmp/random.bin ; rm -f /tmp/random.bin ; done
Эта команда создаст как нагрузку на дисковую подсистему ввода-вывода за счет работы с большим генерируемым файлом, так и нагрузку на процессор за счет использования алгоритма упаковки.
Если нужно нагрузить только процессор, то реальный файл /tmp/random.bin можно заменить /dev/null, и тогда команда будет выглядеть так:
while true; do dd if=/dev/urandom count=10M bs=1 | bzip2 -9 > /dev/null ; done
Если нужно нагрузить сразу несколько ядер, то можно запустить данную команду в нескольких терминалах.
Создание нагрузки с помощью специализированной утилиты
Но для удобства можно воспользоваться утилитой stress, если она есть в репозитарии дистрибутива. Данной утилитой достаточно просто можно создать нагрузку на заданное количество ядер:
stress --cpu 4
С помощью опции --io <N> можно создать несколько "веркеров", которые будут генерировать нагрузку на дисковую систему ввода-вывода. А с помощью опции --vm <N> можно создать несколько "веркеров", генерирующих нагрузку на память вычислительного устройства.