Как создать загрузку процессора на сервере Linux

Я хотел бы протестировать поддельную нагрузку на сервере, я ищу какую-то утилиту командной строки для запуска или тестирования, которая будет генерировать нагрузку на ЦП.

Я хотел бы иметь возможность записывать только CPU (без нагрузки на жесткий диск, сеть и co) и что я мог бы установить период, в который будет загружаться загрузка. Значение Я хочу что-то, что можно было бы запустить: загрузка процессора в течение 10 минут в системе.

Любые идеи?

12 голосов | спросил Maxim Veksler 7 TueEurope/Moscow2010-12-07T11:48:35+03:00Europe/Moscow12bEurope/MoscowTue, 07 Dec 2010 11:48:35 +0300 2010, 11:48:35

6 ответов


12

Вы можете загрузить и установить утилиту «стресс» ... Она позволяет вам загружать загрузку CPU, Memory, Disk и IO из командной строки.

Домашняя страница: http://people.seas.harvard.edu/~apw/stress/

Часто задаваемые вопросы: http://people.seas.harvard.edu/~apw/stress/FAQ

ответил ewwhite 7 TueEurope/Moscow2010-12-07T13:22:59+03:00Europe/Moscow12bEurope/MoscowTue, 07 Dec 2010 13:22:59 +0300 2010, 13:22:59
6

Я предпочитаю ops с плавающей запятой:

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

Помните свой номер процессора: -)

ответил 8 WedEurope/Moscow2010-12-08T18:00:57+03:00Europe/Moscow12bEurope/MoscowWed, 08 Dec 2010 18:00:57 +0300 2010, 18:00:57
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
ответил PP. 7 TueEurope/Moscow2010-12-07T11:55:03+03:00Europe/Moscow12bEurope/MoscowTue, 07 Dec 2010 11:55:03 +0300 2010, 11:55:03
1
ответил Ignacio Vazquez-Abrams 7 TueEurope/Moscow2010-12-07T11:51:58+03:00Europe/Moscow12bEurope/MoscowTue, 07 Dec 2010 11:51:58 +0300 2010, 11:51:58
1

Я рекомендую использовать стресс-нг, он имеет гораздо больше возможностей, чем стресс, и может использовать гораздо больше операционной системы.

http://kernel.ubuntu.com/~cking/stress-ng/

ответил Colin King 26 42015vEurope/Moscow11bEurope/MoscowThu, 26 Nov 2015 23:12:17 +0300 2015, 23:12:17
0

Вот чистая оболочка (не менее 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
  )
}
ответил jlliagre 26 42015vEurope/Moscow11bEurope/MoscowThu, 26 Nov 2015 23:42:39 +0300 2015, 23:42:39

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132