Связаться по:
vkarabedyants Telegram Viber

Блог о системном администрировании серверов и сайтов

Установка, настройка программного обеспечения Linux, Windows операционных систем

Стресс тест процессора и памяти (VM) на Linux

Я хочу проверить свой сервер Linux, OpenBSD, FreeBSD и Unix как он выдержит большую нагрузку и как он будет работать в такой ситуации. Какими средствами я буду тестировать нагрузку на память, процессор и подсистему ввода-вывода в  Linux или Unix-подобных?

Администратор может попробовать любой из следующих инструмент для формирования определенной нагрузки. Случаи, в которых это полезно включать в себя те, в которых системный администратор хочет, чтобы выполнить настройки ядра или программист желает оценить при каких условиях произойдет отказ сервиса, и проверить свои системы исключительно на высокой нагрузке с мониторингом состояния и т.д. Также эти утилиты полезны системным администраторам, системным интеграторам и оверклокерам, которые хотят проверить оборудования в условиях высокой нагрузки и контролировать стабильность и среду.

  1. Stress: Это простой генератор рабочей нагрузки для систем POSIX. Имеет конфигурируемый количество ЦП, памяти, ввода-вывода и дискового стресса в системе. Написано на C, и является свободным программным обеспечением под лицензией GPLv2. Это не тест, а скорее инструмент, предназначенный
  2. Stress-ng: Это обновленная версия инструмента stress, и он может провести стресс-тест сервера для следующих функций:
    1. CPU
    2. Cache
    3. Тестирования привода
    4. Синхронизация ввода / вывода
    5. VM тест
    6. Тест Socket,
    7. Переключение контекста
    8. Создание процесса и прекращение
    9. Он включает в себя более 60 различных стресс-тестов, более 50 процессоров конкретных стресс-тестов, которые осуществляют с плавающей точкой, целое число, манипуляции с битами и контроль потока, более 20 виртуальных стресс-тестов памяти.

Предупреждение: Запуск следующего инструмента рекомендуется с root привилегиями что бы избежать ошибок памяти и других. Кроме того, обратите внимание, что средства будут использовать ресурсы сервера быстро, так что используйте следующую команду рассудительно.

Инструмент # 1: Начало работы с инструментом stress

Эта программа проста в использовании и рекомендуется для новичков администраторов. Инструмент как известно, работает на платформах x86 и Linux и FreeBSD / OpenBSD, PowerPC AIX и Linux, SPARC Solaris, Compaq Alpha Tru64 UNIX, и многие другие.

Установите пакет stress

Вы можете установить stress как часть дистрибутива.

Установка на CentOS, RHEL, и Fedora Linux

Во-первых, нужно включить epel repo , а затем введите следующую команду , чтобы установить пакет:

sudo yum install stress

Пример вывода команды:
Тестирование производительности Centos Linux

Установка на Debian и Ubuntu Linux

Введите следующую команду что бы установить пакет:

apt-get install stress

Пример вывода команды:
Тестирование производительности сервера Debian Ubuntu

Установка на FreeBSD

Введите следующую команду PKG, чтобы установить пакет stress с помощью бинарного метода:

pkg install stress
## OR ##
pkg install sysutils/stress

Пример вывода команды:
Тест производительности FreeBSD 

Установка на OpenBSD

Введите следующую команду pkg_add установить инструмент stress с помощью бинарного метода:

export PKG_PATH=http://ftp.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`
pkg_add stress

Как использовать инструмент stres?

Во-первых, запишите текущие средние нагрузки в системе, введя следующую команду:

# uptime

Затем выполните любое из следующих команду, чтобы увидеть нагрузку на экране:

# watch uptime

ИЛИ использовать команду Tload :

# tload

Синтаксис выглядит следующим образом:

stress [OPTION]
## Stress using CPU-bound task
stress -c 4
## Stress using IO-bound task 
stress -i 2

Например, мы указываем параметры чтобы создать нагрузку на сервер:

# uptime
# stress -c 2 -i 1 -m 1 --vm-bytes 128M -t 10s
# uptime

Пример вывода команды:
Тестирование нагрузки серверв
где

  • -c 2 : Spawn two workers spinning on sqrt()
  • -i 1 : Spawn one worker spinning on sync()
  • -m 1 : Spawn one worker spinning on malloc()/free()
  • --vm-bytes 128M : Malloc 128MB per vm worker (default is 256MB)
  • -t 10s : Таймаут после 10 сек
  • -v : Развернутый вывод

Инструмент # 2: Начало работы с stress-ng

Инструмент stress-ng тестирует компьютерную систему различными выбираемыми способами.

Устаноdка stress-ng на Linux или Unix-подобных системах

Введите следующую команду, чтобы загрузить stress-ng архив с помощью команды Wget:

$ cd /tmp
$ wget http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.03.11.tar.gz

Распакуйте архив следующим способом:

$ tar zxvf stress-ng-0.03.11.tar.gz

Устанавливаем пакет как обычно

$ cd stress-ng-0.03.11 
$ make

Как использовать инструмент stress-ng?

Синтаксис:

stress-ng [options]
stress-ng -c 2
stress-ng -c 4 -t 10 -v
stress-ng -c 4 --metrics-brief

Примеры
Для запуска в течение 60 секунд с 4 CPU, 2 IO и 1 VM использующей 1 Гб виртуальной памяти, введите

stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief

Пример вывода команды:

Вывод тестирования нагрузки сервера

В этом примере, используется 16 процессоров стресса и останавливается после 900 000  операций:

stress-ng --cpu 16 --cpu-ops 900000

Чтобы запустить 4 одновременных экземпляры всех стрессоров последовательно один за другим, каждый в течение 6 минут и резюме с показателями производительности в конце:

stress-ng --sequential 4 --timeout 6m --metrics

Для запуска 2 FFT ЦПУ теста, остановка после 5000 операций и получения резюме только за результаты FFT:

stress-ng --cpu 2 --cpu-method fft --cpu-ops 5000 --metrics−brief

Для выполнения теста CPU на всех доступных CPU, в течение 2 часов:

stress−ng --cpu 0 --cpu-method all -t 2h

Для запуска 2 экземпляров всех стрессоров в течение 10 минут:

stress-ng --all 2 --timeout 10m

Чтобы запустить 128 стрессоров, которые выбираются случайным образом из всех имеющихся:

stress-ng --random 128

Для запуска 64 экземпляров всех различных стрессовых факторов CPU в течение 5 минут с резюме в конце:

stress-ng --cpu 64 --cpu−method all --verify -t 5m --metrics−brief

Чтобы запустить все тесты один за другим в течение 5 минут, с количеством экземпляров каждого стрессора соответствует числу онлайн-процессоров:

stress-ng --sequential 0 -t 5m

Если полученные результаты тестов оказались не удовлетворительными и ваш сервер начинает тормозить при малейших нагрузках, его необходимо оптимизировать. Обращайтесь и мы выполним для вас оптимизацию сервера.

Оставить комментарий

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.