Rate this post

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

    n

  1. Stress: Это простой генератор рабочей нагрузки для систем POSIX. Имеет конфигурируемый количество ЦП, памяти, ввода-вывода и дискового стресса в системе. Написано на C, и является свободным программным обеспечением под лицензией GPLv2. Это не тест, а скорее инструмент, предназначенный
  2. Stress-ng: Это обновленная версия инструмента stress, и он может провести стресс-тест сервера для следующих функций:n
      n

    1. CPU
    2. Cache
    3. Тестирования привода
    4. Синхронизация ввода / вывода
    5. VM тест
    6. Тест Socket,
    7. Переключение контекста
    8. Создание процесса и прекращение
    9. Он включает в себя более 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

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

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

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

apt-get install stress

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

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

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

pkg install stressn## OR ##npkg install sysutils/stress

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

Установка на 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

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

  • -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

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