Як генерувати завантаження процесора на сервері Linux


13

Я хотів би перевірити фальшиве навантаження на сервер, я шукаю деяку утиліту вбудованого чи базового командного рядка, яка б генерувала завантаження процесора на систему.

Мені хотілося б мати змогу вбудовувати лише процесор (без завантаження жорсткого диска, мережі та спільної роботи), і щоб я міг встановити період, у який буде працювати завантаження. Значить, я хочу щось, що можна було б запустити: завантаження процесора протягом 10 хв у системі.

Будь-які ідеї?

Відповіді:



6

Я вважаю за краще опс з плаваючою точкою:

for i in `seq 64`; do perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $sqrt = sqrt($j) for (1..9999); }' & done

Будьте в курсі вашого номера процесора :-)


як я можу timeце зробити?
Себастьян

2

Я часто хочу це робити. Але я не маю гарного способу це зробити. Я просто пишу невеликий сценарій Perl, який буде циклічати стільки секунд, скільки я хочу.

Наприклад (протягом 10 хвилин):

perl -e '$z=time()+(10*60); while (time()<$z) { $j++; $j *= 1.1 for (1..9999); }'

Звичайно, якщо у вас є n процесорів, ви можете додати цикл bash, щоб створити стільки процесів:

#!/bin/bash
# e.g. for 4 processors
for i in 1 2 3 4; do
    perl -e .... &
done
wait

4
Незначна точка: Чи не буде ця forпетля запускати їх послідовно, а не паралельно? Я думаю, (perl -e '...' &)що від'єднати їх від оболонки все-таки зробить цю роботу.
SmallClanger

Ти маєш рацію. Я виправлю свою посаду. Дякуємо, що вказали на це.
ПП.



1

Ось чиста оболонка (принаймні 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
  )
}
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.