В настоящее время я нахожусь в процессе отладки установки Cacti и хочу создать загрузку ЦП для отладки графиков загрузки ЦП.
Я попытался просто запустить cat /dev/zero > /dev/null
, который прекрасно работает, но использует только 1 ядро:
Есть ли лучший метод тестирования / максимизации системных ресурсов под нагрузкой?
Связанный: Как я могу произвести высокую загрузку ЦП на Windows?
performance
debian
benchmarking
Der Hochstapler
источник
источник
cat
одновременно?screen
сессии. Но я бы предпочел более сложное решение, если это возможно.cat /dev/random > /dev/null
. Угадай/dev/zero
тоже работает. :-)Ответы:
Попробуйте
stress
Это в значительной степени эквивалент Windowsconsume.exe
:источник
sudo apt-get install stress
sudo yum install stress
sudo pacman -S stress
brew install stress
на OS XНет необходимости устанавливать какой-либо дополнительный пакет, ваш старый добрый шелл может сделать это самостоятельно.
Этот однострочный загрузит ваши четыре ядра 1 на 100%:
Как это работает, довольно просто, он запускает четыре бесконечных цикла. Каждый из них повторяет нулевую инструкцию (
:
). Каждый цикл способен загружать ядро процессора на 100%.Если вы используете
bash
,ksh93
и другие оболочки поддерживаете диапазоны, (т.е. неdash
старшеksh
), вы можете использовать это не портативный синтаксис:Замените
4
на количество процессоров, которые вы хотите загрузить, если отличается от4
.Предполагая, что при запуске одного из этих циклов у вас уже не было фоновой работы, вы можете остановить генерацию нагрузки с помощью этой команды:
Отвечая на комментарий @ underscore_d, вот улучшенная версия, которая значительно упрощает остановку загрузки, а также позволяет указать тайм-аут (по умолчанию 60 секунд.) A Control- Cтакже уничтожит все циклы разгона. Эта функция оболочки работает как минимум под
bash
иksh
.1 Обратите внимание, что с процессорами, поддерживающими более одного потока на ядро (Hyper-threading), ОС распределяет нагрузку на все виртуальные процессоры. В этом случае поведение загрузки зависит от реализации (для каждого потока может быть указано, что он занят на 100% или нет). ,
источник
&
заставляет команду работать в отдельном потоке или отдельном ядре ? Я смущен.killall bash
- просто убедитесь, что у вас нет других важных скриптов, запущенных в данный момент.killall bash
. Ответ отредактирован, чтобы добавить более безопасный метод для завершения генерации нагрузки.Я сделал простой скрипт на Python, который делает то же самое. Вы можете контролировать количество ядер процессора, которые вы хотите загрузить. Хорошая вещь об этом - то, что это не будет потреблять никакой другой ресурс кроме процессора. (Я думаю, что идея Марка Джонсона потребует много ресурсов ввода-вывода, что здесь нежелательно.)
Просто запустите этот скрипт из терминала
$ python temp1.py
. Вам нужно убить сценарий, когда вы закончите.Вот мой вывод потребления ЦП при загрузке 3 моих ядер.
источник
Одним из альтернативных способов будет
или (если присутствует nproc)
OpenSSL почти всегда присутствует в современных дистрибутивах, поэтому никаких дополнительных пакетов не требуется.
источник
Начать два
Команды для каждого ядра в вашей системе.
Прекратить
или же
источник
Я обычно беру cpuburn suite:
Замените 4 числом ядер / HT-потоков, которые у вас есть или которые вы хотите подчеркнуть.
Примечание. Это подчеркивает как можно большую площадь микросхемы, так как она запрограммирована на максимальное рассеивание мощности. Я должен был написать этот пост во второй раз, как-то моя машина не понравилась :-(
Вы также можете сделать cpuburn в последовательности:
И когда вы хотите остановить их
Вы также можете умножить,
burnP6 &
чтобы соответствовать количеству процессорных ядер в вашей системе.источник
Я разрабатывал стресс-нг, обновленный инструмент стресса, который может подчеркнуть широкий спектр аспектов системы Linux. Для получения дополнительной информации см. Http://kernel.ubuntu.com/~cking/stress-ng/.
Использование похоже на стресс
Установить с
источник
Вы можете выполнить эту команду столько раз, сколько захотите, и каждый раз она будет занимать другое ядро:
источник
killall cat
должен сделать это.cat
запущены ли у вас другие процессы (я обычно это делаю).https://github.com/GaetanoCarlucci/CPULoadGenerator
довольно простое и научное решение.
Здесь вы можете увидеть пример динамики, в которой 50% нагрузки генерируется на ядре 0 процессора:
Вы можете запустить процесс на других ядрах одновременно.
источник
Я объединил оба + jlliagre и + ecabuk.
источник
Вы можете использовать:
Повторите
dd if=/dev/zero of=/dev/null
для ваших процессорных ядер.Нажмите любую клавишу, чтобы остановить тест.
источник
pxz
это параллельная реализацияxz
.pxz -9e /dev/zero --stdout >/dev/null
следует сделать свое дело, так как это довольно интенсивный процесс.Если
/dev/zero
это не достаточно быстро (вы заметили, чтоpxz
ввод / вывод ограничен), вы можете сделатьpxz -9e /dev/zero --stdout | pxz -9e --stdout >/dev/null
Более новые версии
xz
имеют--threads
опцию, которая является заменойpxz
.источник
Вот способ, которым я пользуюсь, и нет необходимости устанавливать что-либо дополнительное.
Например, чтобы начать с 4 процессов,
Вы можете изменить количество процессов с помощью опции «-P» выше.
источник
Простая командная строка делает это тоже:
источник
while : ; do : ; done
for i in 1 2 3; do while : ; do : ; done & ; done
Я хотел добавить это к комментарию @ jlliagre, но мне не хватает репутации. Если вы собираетесь использовать этот код на нескольких серверах и количество процессоров будет различаться, вы можете использовать следующую команду:
Это будет использовать все ядра на вашем сервере, независимо от того, сколько у вас есть. Команда
nproc
является частью coreutils, поэтому должна быть в большинстве установок Linux.источник