Стресс тест процессора и памяти (VM) на Linux
Я хочу проверить свой сервер Linux, OpenBSD, FreeBSD и Unix как он выдержит большую нагрузку и как он будет работать в такой ситуации. Какими средствами я буду тестировать нагрузку на память, процессор и подсистему ввода-вывода в Linux или Unix-подобных?
Администратор может попробовать любой из следующих инструмент для формирования определенной нагрузки. Случаи, в которых это полезно включать в себя те, в которых системный администратор хочет, чтобы выполнить настройки ядра или программист желает оценить при каких условиях произойдет отказ сервиса, и проверить свои системы исключительно на высокой нагрузке с мониторингом состояния и т.д. Также эти утилиты полезны системным администраторам, системным интеграторам и оверклокерам, которые хотят проверить оборудования в условиях высокой нагрузки и контролировать стабильность и среду.
- Stress: Это простой генератор рабочей нагрузки для систем POSIX. Имеет конфигурируемый количество ЦП, памяти, ввода-вывода и дискового стресса в системе. Написано на C, и является свободным программным обеспечением под лицензией GPLv2. Это не тест, а скорее инструмент, предназначенный
- Stress-ng: Это обновленная версия инструмента stress, и он может провести стресс-тест сервера для следующих функций:
- CPU
- Cache
- Тестирования привода
- Синхронизация ввода / вывода
- VM тест
- Тест Socket,
- Переключение контекста
- Создание процесса и прекращение
- Он включает в себя более 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
Установка на Debian и Ubuntu Linux
Введите следующую команду что бы установить пакет:
apt-get install stress
Установка на FreeBSD
Введите следующую команду PKG, чтобы установить пакет stress с помощью бинарного метода:
pkg install stress
## OR ##
pkg install sysutils/stress
Установка на 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
Если полученные результаты тестов оказались не удовлетворительными и ваш сервер начинает тормозить при малейших нагрузках, его необходимо оптимизировать. Обращайтесь и мы выполним для вас оптимизацию сервера.