Не потрібно встановлювати зайвий пакет, ваша стара добра оболонка здатна зробити це самостійно.
Цей однопластовий завантажуватиме ваші чотири ядра 1 на 100%:
for i in 1 2 3 4; do while : ; do : ; done & done
Як це працює досить просто, він починає чотири нескінченні петлі. Кожен з них повторює нульову інструкцію ( :
). Кожен цикл може завантажувати ядро CPU на 100%.
Якщо ви використовуєте bash
, ksh93
і інші оболонки підтримуєте діапазони, (тобто не dash
старше ksh
), ви можете використовувати це не портативний синтаксис:
for i in {1..4}; do ...
Замініть 4
на кількість процесорів, які ви хочете завантажити, якщо вони відрізняються від 4
.
Якщо припустити, що у вас не запущено фонове завдання при запуску однієї з цих циклів, ви можете зупинити генерацію навантаження за допомогою цієї команди:
for i in 1 2 3 4; do kill %$i; done
Відповідь на коментар @ underscore_d, ось це розширена версія , що спрощує багато зупинки навантаження і що також дозволяє вказати таймаут ( по замовчуванням 60 секунд.) A Control- Cвбиває всі швидку петлю теж. Ця функція оболонки працює щонайменше під bash
і під ksh
.
# Usage: lc [number_of_cpus_to_load [number_of_seconds] ]
lc() {
(
pids=""
cpus=${1:-1}
seconds=${2:-60}
echo loading $cpus CPUs for $seconds seconds
trap 'for p in $pids; do kill $p; done' 0
for ((i=0;i<cpus;i++)); do while : ; do : ; done & pids="$pids $!"; done
sleep $seconds
)
}
1 Зауважте, що з процесорами, що підтримують більше одного потоку на ядро (Hyper-Thading), ОС буде відправляти навантаження на всі віртуальні процесори. У цьому випадку поведінка навантаження залежить від реалізації (кожен потік може бути повідомлений як 100% зайнятий чи ні). .
cat
одночасно?