Я хочу проверить свой сервер Linux, OpenBSD, FreeBSD и Unix как он выдержит большую нагрузку и как он будет работать в такой ситуации. Какими средствами я буду тестировать нагрузку на память, процессор и подсистему ввода-вывода в Linux или Unix-подобных?nnАдминистратор может попробовать любой из следующих инструмент для формирования определенной нагрузки. Случаи, в которых это полезно включать в себя те, в которых системный администратор хочет, чтобы выполнить настройки ядра или программист желает оценить при каких условиях произойдет отказ сервиса, и проверить свои системы исключительно на высокой нагрузке с мониторингом состояния и т.д. Также эти утилиты полезны системным администраторам, системным интеграторам и оверклокерам, которые хотят проверить оборудования в условиях высокой нагрузки и контролировать стабильность и среду.n
- n
- Stress: Это простой генератор рабочей нагрузки для систем POSIX. Имеет конфигурируемый количество ЦП, памяти, ввода-вывода и дискового стресса в системе. Написано на C, и является свободным программным обеспечением под лицензией GPLv2. Это не тест, а скорее инструмент, предназначенный
- Stress-ng: Это обновленная версия инструмента stress, и он может провести стресс-тест сервера для следующих функций:n
- n
- CPU
- Cache
- Тестирования привода
- Синхронизация ввода / вывода
- VM тест
- Тест Socket,
- Переключение контекста
- Создание процесса и прекращение
- Он включает в себя более 60 различных стресс-тестов, более 50 процессоров конкретных стресс-тестов, которые осуществляют с плавающей точкой, целое число, манипуляции с битами и контроль потока, более 20 виртуальных стресс-тестов памяти.
n
nПредупреждение: Запуск следующего инструмента рекомендуется с root привилегиями что бы избежать ошибок памяти и других. Кроме того, обратите внимание, что средства будут использовать ресурсы сервера быстро, так что используйте следующую команду рассудительно.n
Инструмент # 1: Начало работы с инструментом stress
Эта программа проста в использовании и рекомендуется для новичков администраторов. Инструмент как известно, работает на платформах x86 и Linux и FreeBSD / OpenBSD, PowerPC AIX и Linux, SPARC Solaris, Compaq Alpha Tru64 UNIX, и многие другие.n
Установите пакет stress
Вы можете установить stress как часть дистрибутива.n
Установка на CentOS, RHEL, и Fedora Linux
Во-первых, нужно включить epel repo , а затем введите следующую команду , чтобы установить пакет:n
sudo yum install stress
Установка на Debian и Ubuntu Linux
Введите следующую команду что бы установить пакет:n
apt-get install stress
Установка на FreeBSD
Введите следующую команду PKG, чтобы установить пакет stress с помощью бинарного метода:n
pkg install stressn## OR ##npkg install sysutils/stress
Установка на OpenBSD
Введите следующую команду pkg_add установить инструмент stress с помощью бинарного метода:n
export PKG_PATH=http://ftp.usa.openbsd.org/pub/OpenBSD/`uname -r`/packages/`arch -s`npkg_add stress
Как использовать инструмент stres?
Во-первых, запишите текущие средние нагрузки в системе, введя следующую команду:n
# uptime
Затем выполните любое из следующих команду, чтобы увидеть нагрузку на экране:n
# watch uptime
ИЛИ использовать команду Tload :n
# tload
Синтаксис выглядит следующим образом:n
stress [OPTION]n## Stress using CPU-bound tasknstress -c 4n## Stress using IO-bound task nstress -i 2
Например, мы указываем параметры чтобы создать нагрузку на сервер:n
# uptimen# stress -c 2 -i 1 -m 1 --vm-bytes 128M -t 10sn# 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 тестирует компьютерную систему различными выбираемыми способами.n
Устаноdка stress-ng на Linux или Unix-подобных системах
Введите следующую команду, чтобы загрузить stress-ng архив с помощью команды Wget:n
$ cd /tmpn$ wget http://kernel.ubuntu.com/~cking/tarballs/stress-ng/stress-ng-0.03.11.tar.gz
Распакуйте архив следующим способом:n
$ tar zxvf stress-ng-0.03.11.tar.gz
Устанавливаем пакет как обычноn
$ cd stress-ng-0.03.11 n$ make
Как использовать инструмент stress-ng?
Синтаксис:n
stress-ng [options]nstress-ng -c 2nstress-ng -c 4 -t 10 -vnstress-ng -c 4 --metrics-brief
ПримерыnДля запуска в течение 60 секунд с 4 CPU, 2 IO и 1 VM использующей 1 Гб виртуальной памяти, введитеn
stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 1G --timeout 60s --metrics-brief
Пример вывода команды:nnВ этом примере, используется 16 процессоров стресса и останавливается после 900 000 операций:n
stress-ng --cpu 16 --cpu-ops 900000
Чтобы запустить 4 одновременных экземпляры всех стрессоров последовательно один за другим, каждый в течение 6 минут и резюме с показателями производительности в конце:n
stress-ng --sequential 4 --timeout 6m --metrics
Для запуска 2 FFT ЦПУ теста, остановка после 5000 операций и получения резюме только за результаты FFT:n
stress-ng --cpu 2 --cpu-method fft --cpu-ops 5000 --metrics−brief
Для выполнения теста CPU на всех доступных CPU, в течение 2 часов:n
stress−ng --cpu 0 --cpu-method all -t 2h
Для запуска 2 экземпляров всех стрессоров в течение 10 минут:n
stress-ng --all 2 --timeout 10m
Чтобы запустить 128 стрессоров, которые выбираются случайным образом из всех имеющихся:n
stress-ng --random 128
Для запуска 64 экземпляров всех различных стрессовых факторов CPU в течение 5 минут с резюме в конце:n
stress-ng --cpu 64 --cpu−method all --verify -t 5m --metrics−brief
Чтобы запустить все тесты один за другим в течение 5 минут, с количеством экземпляров каждого стрессора соответствует числу онлайн-процессоров:n
stress-ng --sequential 0 -t 5m
Если полученные результаты тестов оказались не удовлетворительными и ваш сервер начинает тормозить при малейших нагрузках, его необходимо оптимизировать. Обращайтесь и мы выполним для вас оптимизацию сервера.