Мы используем инструменты стресс-тестирования, чтобы оценить поведение наших систем при высоких нагрузках. Стресс-тестирование предоставляет нам данные в режиме реального времени, которые позволяют при необходимости внести коррективы до запуска в работу, помогая избежать возможных сбоев или снижения производительности из-за увеличения количества пользователей. Поэтому, чтобы оправдать ожидания клиентов и обеспечить удовлетворительное обслуживание, мы используем инструменты стресс-тестирования.
Как проверить диск?
Один из главных компонентов сервера, который также необходимо держать в уме – диск! Абсолютно точно, ни один тест высокой нагрузки не обходится без проверки работоспособности и скорости дисковой системы.
К сожалению, в интернете существует множество способов проверки, которые вгоняют вас в испанский стыд:
- научная статья с описанием предполагаемой скорости работы кластерной FS с утилитой dd и включенным файловым кэшем;
- использование bonnie++;
- использование iozone;
- использование утилиты cp с подсчетом времени.
Все эти методы в корне неверны, в этой инструкции мы не будем рассматривать, почему вы их не используете. Но если объяснить в нескольких словах часть программы, необходимой для оценки скорости закрытия и открытия файла, то некоторые утилиты оценивают линейную скорость, что не является максимальной скоростью диска или реальной производительностью и т.д.
Для быстрой проверки сервера мы будем использовать sysbench, этот метод тоже не чист, но позволяет оценить быстро и близко к реальному значению!
Для этого нам нужно обновить индексы и обновить пакеты, выполнив команду:
Дождитесь окончания процесса, теперь мы можем загрузить нужный пакет:
Sysbench позволяет проводить измерения с помощью различных алгоритмов, которые обеспечивают синтетическую высокую нагрузку. Мы будем использовать метод со случайным значением, которое будет записываться и считываться.
Нам необходимо подготовить тестовые данные, если размер тестового файла меньше объема оперативной памяти, то при тестировании твердотельных или жестких дисков система может использовать кэш оперативной памяти для хранения данных. Это может привести к искажению результатов тестирования, так как операции чтения и записи будут выполняться в оперативной памяти, а не на самом диске. Для оценки реальной производительности дисковой подсистемы рекомендуется использовать тестовые файлы, превышающие объем оперативной памяти.
Затем мы наконец запускаем наш тест:
Значение количества потоков становится очевидным при рассмотрении задач, которые задействуют дисковую подсистему и могут выполняться одновременно. Увеличение числа потоков может повысить эффективность использования дисковых ресурсов, что делает его важным фактором для оптимизации производительности в сценариях с параллельными задачами:
Если мы не хотим сохранять временный гигантский файл с тестовыми данными, то очистите его командой:
В качестве результата мы можем использовать среднюю скорость диска, как мы видим, наш SSD показал отличный результат!
Стресс-тестирование – незаменимая практика для оценки поведения системы при высоких нагрузках, обеспечения оптимальной производительности и упреждающего устранения потенциальных проблем. При изучении различных аспектов производительности сервера важно не упустить из виду состояние и скорость работы диска.