Linux system stress test

Стресс тест процессора и памяти (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 , а затем введите следующую команду , чтобы установить пакет:

    Источник

    Стресс-тестирование систем в Linux – утилита stress-ng

    Для организации и проведения нагрузочного стресс-тестирования в Linux-системах существует утилита stress-ng. С помощью неё несложно сгенерировать реальную рабочую нагрузку на тестируемые подсистемы и, соответственно, оценить её возможности. Утилита, традиционно для Linux, предоставляет для работы интерфейс командной строки. Однако, это ни в коей мере не делает её неудобной. Со своими задачами она справляется на «отлично». В данной статье приведены инструкции, отражающие основы работы с утилитой stress-ng для некоторых самых распространённых ситуаций в стресс-тестировании систем на основе Linux.

    Основные особенности и возможности stress-ng

    Возможности, которыми обладает утилита stress-ng, довольно широки. Об этом свидетельствует огромное количество всевозможных опций, которыми её наделили разработчики.
    Но ключевой особенностью stress-ng является то, что это полноценный инструмент со встроенными тестами. В отличие от многих других аналогов, при выполнении теста не производится обращений к сторонним и/или внешним ресурсам. Таким образом, stress-ng абсолютно самодостаточна. Практически в любом дистрибутиве Linux она доступна в стандартном репозитории и устанавливается с помощью системы управления пакетами (СУП) дистрибутива. Например, в Ubuntu:

    $ sudo apt-get install stress-ng

    Кроме всего прочего, stress-ng в своём составе очень качественные тесты для тестирования процессоров, в совокупности позволяющие наиболее полно сгенерировать нагрузку на CPU, используя такие методы как целочисленные и с плавающей запятой, битовые операции, комплексные вычисления и т. д.

    Синтаксис stress-ng

    Как уже было отмечено, stress-ng имеет настолько огромный набор опций, что в рамках данной статьи целесообразнее остановиться лишь на основных, позволяющих протестировать все основные подсистемы: CPU, виртуальную память, а также дисковую подсистему.
    Синтаксис stress-ng довольно прост:

    Задаёт конкретный метод тестирования виртуальной памяти. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Подробнее в официальном руководстве по команде man stress-ng.

    —vm-method mЗадаёт конкретный метод тестирования виртуальной памяти. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Подробнее в официальном руководстве по команде man stress-ng.

    Основные опции stress-ng

    В таблице ниже указаны основные опции утилиты

    Опция Значение
    —class name Задаёт тип теста. В качестве name указывается например cpu, memory, vm, io и другие.
    —metrics Указывает, что по завершению теста должна быть выведена статистика основных метрик, отражающих поведение системы во время теста.
    —metrics-brief То же, что и —metrics, но выводит ненулевые метрики.
    —cpu-method method Задаёт метод генерации нагрузки для процессора. По-умолчанию выполняются все доступные для данной категории тесты, последовательно друг за другом. Более подробно об этой опции можно узнать, выполнив команду man stress-ng.
    —cpu N Запускает для стресс-теста процессора N стрессоров для каждого его потока.
    —cpu-ops N Указывает, через какое количество bogo-операций необходимо остановить тест CPU.
    —hdd-ops N Указывает, через какое количество bogo-операций необходимо остановить тест жёстких дисков.
    —hdd-bytes N Записывает N байт для каждого процесса работы с жёстким диском. По-умолчанию равно 1 Гб.
    —vm N Запускает для стресс-теста виртуальной памяти N стрессоров.
    —vm-bytes N Размещает N байт для каждого процесса работы с памятью. По-умолчанию равно 256 Мб. Объём также может быть указан в процентах от общего объёма виртуальной памяти в системе. Значения можно задавать в бфйтах, килобайтах, мегабайтах и гигабайтах, используя суффиксы b, k, m и g соответственно.
    —sequential N Задает N количество потоков для выполнения тестов, если N не указано или равно 0, то количество потоков равно числу процессоров.

    Для удобства и быстрого составления необходимых тестов рекомендуется пользоваться также некоторыми вспомогательными опциями, например:

    • что бы запустить несколько экземпляров каждого стресс-теста используется опция —all N, где N – необходимое количество экземпляров;
    • для установки таймаута, т. е. времени продолжительности стресс-теста используется опция —timeout.

    Тестирование процессора

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

    $ stress-ng --cpu 16 --cpu-method matrixprod --metrics --timeout 60

    В данном тесте задействованы 16 потоков для тестирования 16-поточного процессора. Вывод результатов может быть следующим:

    Естественно количество потоков следует задавать в соответствии со спецификацией используемого процессора.

    Тестирование дисковой подсистемы

    Для проведения стресс-тестирования накопителей, таких как жёсткие диски можно для начала провести низкоуровневый тест ввода вывода

    $ stress-ng --sequential 0 --class io --timeout 60s --metrics-brief

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

    Еще один стресс-тест дисков можно выполнить командой

    $ stress-ng --hdd 5 --hdd-ops 100000

    В данном случае будет запущено 5 стрессоров для жёстких дисков, которые будут остановлены по завершении 100 тыс. bogo-операций.

    Во время тестирования можно смотреть загрузку командой iostat

    Тестирование памяти

    Что бы провести стресс-тест памяти используйте команду

    $ stress-ng --sequential 0 --class memory --timeout 60s --metrics-brief

    После окончания мы получим результат проверки приблизительно следующего вида

    Комплексное тестирование

    Если необходимо провести комплексное стресс-тестирование, можно задействовать работу нескольких основных подсистем вместе одной командой:

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

    Эта команда запустит тест для CPU в 8 потоков, тест виртуальной памяти с размещением в ней одного гигабайта данных, а также 4 стрессора для тестирования операций ввода/вывода.

    Что бы запустить тестирование всего «железа», используется команда

    $ stress-ng --sequential 0 --timeout 60s --metrics-brief

    Эта команда запустит все тесты. После выполнения результат будет выведен в консоль. Во время выполнения команды лучше компьютер не трогать

    Заключение

    В заключение стоит ещё раз отметить, что утилита stress-ng по своим возможностям очень универсальна и позволяет качественно протестировать любую систему. Приведенные выше примеры охватывают наиболее распространённые ситуации по нагрузочному тестированию Linux-систем. Для проведения специфичных или более сложных тестов рекомендуется обращаться к официальному руководству по использованию утилиты, доступному по команде man stress-ng.

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

    Похожие записи:

    Источник

    Читайте также:  Посмотреть последние строки файла linux
Оцените статью
Adblock
detector