ћерион Ќетворкс

4 минуты чтени€

ѕовышение нагрузки на серверы Linux может быть хорошей идеей, если вы хотите увидеть, насколько хорошо они работают, когда они загружены. ¬ этой статье мы рассмотрим некоторые инструменты, которые помогут вам нагрузить сервер и оценить результаты.

ƒл€ чего вам необходимо подвергать свою систему Linux нагрузке? ѕотому что иногда вам может потребоватьс€ узнать, как система будет вести себ€, когда она находитс€ под большим давлением из-за большого количества запущенных процессов, интенсивного сетевого трафика, чрезмерного использовани€ пам€ти и т. д. Ётот вид тестировани€ позвол€ет убедитьс€, что система готова к использованию.

ќбучайс€ в Merion Academy

ѕройди курс по
сетевым технологи€м

Ќачать

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

  счастью дл€ тех, кому нужно знать, как система Linux отреагирует на нагрузку, есть несколько полезных методов, которые вы можете использовать, и есть инструменты, которые вы можете использовать, чтобы упростить этот процесс. ¬ этой статье мы рассмотрим несколько вариантов.


—оздаем циклы своими руками

ƒанный первый метод предполагает запуск некоторых циклов в командной строке и наблюдение за тем, как они вли€ют на систему. Ётот метод нагружает ÷ѕ, значительно увеличива€ нагрузку. –езультаты можно легко увидеть с помощью команды uptime или аналогичных команд.

¬ приведенной ниже примере мы начинаем четыре бесконечных цикла. ¬ы можете увеличить количество циклов, добавл€€ цифры или использу€ выражение bash, например {1..6} вместо Ђ1 2 3 4ї.

for i in 1 2 3 4; do while : ; do : ; done & done	

¬ примере выше, команда, запускает четыре бесконечных цикла в фоновом режиме.

$ for i in 1 2 3 4; do while : ; do : ; done & done
[1] 205012
[2] 205013
[3] 205014
[4] 205015

¬ этом случае были запущены задани€ 1-4. ќтображаютс€ как номера заданий, так и идентификаторы процессов.

„тобы увидеть вли€ние на средние значени€ нагрузки, используйте команду, подобную показанной ниже. ¬ этом случае команда uptime запускаетс€ каждые 30 секунд:

$ while true; do uptime; sleep 30; done	

≈сли вы собираетесь периодически запускать подобные тесты, вы можете поместить команду цикла в скрипт:

#!/bin/bash

while true
do
  uptime
  sleep 30
done	

¬ выходных данных вы можете увидеть, как средние значени€ нагрузки увеличиваютс€, а затем снова начинают снижатьс€ после завершени€ циклов.

–ис. 1 ѕросмотр нагрузки на ÷ѕ

ѕоскольку показанные нагрузки представл€ют собой средние значени€ за 1, 5 и 15 минут, потребуетс€ некоторое врем€, чтобы значени€ вернулись к нормальным дл€ системы значени€м.

„тобы остановить циклы, выполните команду kill, подобную приведенной ниже - при условии, что номера заданий равны 1-4, как было показано ранее в этой статье. ≈сли вы не уверены, используйте команду jobs, чтобы проверить ID.

$ kill %1 %2 %3 %4	

—пециализированные инструменты дл€ добавлени€ нагрузки

ƒругой способ создать системный стресс - это использовать инструмент, специально созданный дл€ того, чтобы нагружать систему за вас. ќдин из них называетс€ stress и может воздействовать на систему разными способами. —тресс-инструмент - это генератор рабочей нагрузки, который обеспечивает стресс-тесты ÷ѕ, пам€ти и I/O.

— параметром --cpu команда stress использует функцию извлечени€ квадратного корн€, чтобы заставить ÷ѕ усердно работать. „ем больше указано количество ÷ѕ, тем быстрее будет нарастать нагрузка.

¬торой сценарий watch-it (watch-it-2) может использоватьс€ дл€ оценки вли€ни€ на использование системной пам€ти. ќбратите внимание, что он использует команду free, чтобы увидеть эффект стресса.

$ cat watch-it-2
#!/bin/bash

while true
do
  free
  sleep 30
done	

Ќачало и наблюдение за стрессом:

$ stress --cpu 2	
–ис. 2 —тресс нагрузка ќ«”

„ем больше ÷ѕ указано в командной строке, тем быстрее будет нарастать нагрузка.

–ис. 3  ”величение нагрузки при увеличении количества процессоров

 оманда stress также может вызвать нагрузку на систему, добавив I/O и загрузку пам€ти с помощью параметров --io (input/output) и --vm (memory).

¬ следующем примере выполн€етс€ команда дл€ добавлени€ нагрузки на пам€ть, а затем запускаетс€ сценарий watch-it-2:

$ stress --vm 2	
–ис. 4 «апуск сценари€ watch-it-2

ƒругой вариант дл€ стресса - использовать параметр --io, чтобы добавить в систему действи€ по вводу/выводу. ¬ этом случае вы должны использовать такую команду:

$ stress --io 4	

ѕосле чего вы можете наблюдать за стрессовым I/O с помощью iotop. ќбратите внимание, что iotop требует привилегий root.

ƒо

ƒо

ѕосле

ѕосле

stress - это лишь один из множества инструментов дл€ добавлени€ нагрузки в систему.


 ажетс€, ћарион запуталс€ в сет€х, пока пыталс€ в них разобратьс€!

≈му нужна тво€ помощь! ѕомоги решить задачу, чтобы спасти принцессу

ћаршрутизатор состоит из многих внутренних компонентов.  акой компонент хранит копию файла конфигурации?

 ака€ особенность поддерживает высокую пропускную способность в коммутируемых сет€х, объедин€€ несколько каналов в один?

 акой уровень модели OSI требуетс€ дл€ конфигурировани€ соединени€ между устройствами в различных виртуальных локальных сет€х?

“ы помог ћариону спасти принцессу!

«а это он дарит тебе дополнительные 15% скидки на курс по сет€м!

ѕолучить

”пс, кажетс€ промах. ѕопробуй в следующий раз!

x