Я хочу создать почти 100% загрузку на машине с Linux. Это четырехъядерная система, и я хочу, чтобы все ядра работали на полной скорости. В идеале загрузка ЦП должна длиться определенное время, а затем останавливаться. Я надеюсь, что в bash есть какая-то хитрость. Я думаю, что-то вроде бесконечного цикла.
281
Ответы:
Вы также можете сделать
Чтобы запустить больше из них для загрузки большего количества ядер, попробуйте раскошелиться:
Повторите команду в фигурных скобках столько раз, сколько потоков вы хотите произвести (здесь 4 потока). Простое нажатие ввода остановит его (просто убедитесь, что на этом пользователе не запущен другой dd, или вы тоже его убили).
источник
/dev/zero
и запись в/dev/null
не очень хороший генератор нагрузки - вы должны запустить много из них, чтобы генерировать значительную нагрузку. Лучше сделать что-нибудь подобноеdd if=/dev/urandom | bzip2 -9 >> /dev/null
./dev/urandom
требует значительно больше усилий для генерации вывода иbzip2
потребует много усилий, чтобы сжать его, поэтому общая загрузка ЦП намного выше, чем «заполнить блок нулями, а затем выбросить».jobs -p | xargs kill
только для уничтожения созданных вами процессов.Я использую стресс для такого рода вещей, вы можете сказать, сколько ядер максимально использовать ... это также позволяет нагрузить память и диск.
Пример для стресса 2 ядра в течение 60 секунд
stress --cpu 2 --timeout 60
источник
sudo yum install stress
EPEL
репо для CentOSwget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
brew
install stress
на OS X. Также по какой-то причине мне пришлось указать 8 ядер на четырехъядерном MBPrsudo apt-get install stress
в системах на основе Debian, для полноты. Использовал это для тестирования мод охлаждения на Intel i7 NUC Kit .Я думаю, что этот проще. Откройте терминал, введите следующее и нажмите Enter.
Чтобы полностью использовать современные процессоры, одной строки недостаточно, вам может потребоваться повторить команду, чтобы исчерпать всю мощность процессора.
Чтобы положить конец всему этому, просто
Идея была первоначально найдена здесь , хотя она была предназначена для пользователей Mac, но это должно работать и для * nix.
источник
yes
команду (при условии, что система в противном случае простаивала).Несмотря на то, что я опаздываю на вечеринку, этот пост является одним из лучших результатов в поиске Google "Создать нагрузку в Linux".
Результат, помеченный как решение, может быть использован для генерирования загрузки системы, я предпочитаю использовать его
sha1sum /dev/zero
для загрузки нагрузки на ядро процессора.Идея состоит в том, чтобы вычислить хэш-сумму из бесконечного потока данных (например, / dev / zero, / dev / urandom, ...), этот процесс будет пытаться максимально увеличить ядро ЦП до тех пор, пока процесс не будет прерван. Чтобы создать нагрузку для большего количества ядер, можно объединить несколько команд.
например. создать нагрузку на 2 ядра:
sha1sum /dev/zero | sha1sum /dev/zero
источник
Одно ядро (не вызывает внешнего процесса):
Два ядра:
Последнее только заставляет меня обоих пойти на ~ 50%, хотя ...
Этот заставит оба пойти на 100%:
источник
renice 19 -p $$
. Это по-прежнему будет максимально загружать процессоры, но не будет влиять на другие процессы.Чтобы загрузить 3 ядра в течение 5 секунд:
Это приводит к высокой загрузке ядра (sys) из-за многих системных вызовов write ().
Если вы предпочитаете в основном загрузку ЦП:
Если вы просто хотите, чтобы загрузка продолжалась, пока вы не нажмете Ctrl-C:
источник
Вот программа, которую вы можете скачать здесь
Легко установить на свою систему Linux
и запустить его в простой командной строке
нагрузка на все ваши процессоры (какими бы вы ни были) 40-
sqrt
тью потоками, каждый из которых выполняет сложные вычисления на случайных числах.Вы даже можете определить время ожидания программы
в отличие от предложенного решения с
dd
командой, которая имеет дело с сущностьюIO
и поэтому не перегружает вашу систему, потому что работает с данными.Программа стресса действительно перегружает систему, потому что имеет дело с вычислениями.
источник
stress
. Как говорится в этом ответе, вы можете просто установить его через yum / apt / etc.Эта вилочная бомба вызовет хаос в процессоре и, скорее всего, приведет к поломке вашего компьютера.
источник
Бесконечный цикл - идея, которая у меня тоже была. Причудливый на вид это:
(
:
то же самоеtrue
, ничего не делает и выходит с нуля)Вы можете назвать это в подоболочке и запустить в фоновом режиме. Делать это
$num_cores
раз должно быть достаточно. После сна нужного времени вы можете убить их всех, вы получите ИДП сjobs -p
(подсказкой:xargs
)источник
Я бы разделил эту вещь на 2 сценария:
infinite_loop.bash:
cpu_spike.bash:
источник
источник
источник
Я использовал
bc
( бинарный калькулятор ), спрашивая их для PI с большим количеством десятичных знаков.с NUMCPU (под Linux):
Этот метод силен, но кажется дружественным к системе , поскольку я никогда не ломал систему, используя это.
источник
источник
:-)
Я пошел через Интернет, чтобы найти что-то вроде этого и нашел этот очень удобный скрипт молотка процессора.
источник
NUM_PROC=${1:-10}
.Используя примеры, упомянутые здесь, а также помощь IRC, я разработал собственный скрипт стресс-тестирования процессора. Он использует подоболочку на поток и метод бесконечного цикла. Вы также можете указать количество потоков и количество времени в интерактивном режиме.
источник
Используя идеи здесь, созданный код, который автоматически выходит через заданный промежуток времени, не должен убивать процессы -
источник
Это делает трюк для меня:
и он не использует ничего, кроме Bash.
источник
Чтобы улучшить ответ Димбы и предоставить что-то более подключаемое (потому что мне нужно что-то подобное). Я написал следующее, используя концепцию загрузки dd: D
Он проверит текущие ядра и создаст столько потоков dd. Начать и завершить загрузку ядра с помощью Enter
источник
Я объединил некоторые ответы и добавил способ масштабирования стресса для всех доступных процессоров:
источник
Димба
dd if=/dev/zero of=/dev/null
определенно прав, но также стоит упомянуть проверку максимальной загрузки процессора до 100%. Вы можете сделать это сЭто запрашивает вывод ps среднего значения использования процессора каждым процессом за 1 минуту, а затем суммирует их с помощью awk. Несмотря на то, что это среднее значение за 1 минуту, ps достаточно умен, чтобы знать, что процесс занимает всего несколько секунд, и соответствующим образом корректирует временное окно. Таким образом, вы можете использовать эту команду, чтобы сразу увидеть результат.
источник
увеличить нагрузку или потреблять процессор на 100%
тогда вы можете увидеть использование процессора, набрав команду
снять нагрузку
источник
Просто вставьте этого плохого парня в SSH или консоль любого сервера под управлением Linux.
Вы можете убить процессы вручную, но я просто выключаю сервер, когда я закончу, быстрее.Изменить: я обновил этот сценарий, чтобы теперь иметь функцию таймера, так что нет необходимости убивать процессы.
источник