Мы используем инструменты стресс-тестирования, чтобы оценить поведение наших систем при высоких нагрузках. Стресс-тестирование предоставляет нам данные в режиме реального времени, которые позволяют при необходимости внести коррективы до запуска в работу, помогая избежать возможных сбоев или снижения производительности из-за увеличения количества пользователей. Поэтому, чтобы оправдать ожидания клиентов и обеспечить удовлетворительное обслуживание, мы используем инструменты стресс-тестирования.
Как проверить диск?
Один из главных компонентов сервера, который также необходимо держать в уме – диск! Абсолютно точно, ни один тест высокой нагрузки не обходится без проверки работоспособности и скорости дисковой системы.
К сожалению, в интернете существует множество способов проверки, которые вгоняют вас в испанский стыд:
- научная статья с описанием предполагаемой скорости работы кластерной FS с утилитой dd и включенным файловым кэшем;
- использование bonnie++;
- использование iozone;
- использование утилиты cp с подсчетом времени.
Все эти методы в корне неверны, в этой инструкции мы не будем рассматривать, почему вы их не используете. Но если объяснить в нескольких словах часть программы, необходимой для оценки скорости закрытия и открытия файла, то некоторые утилиты оценивают линейную скорость, что не является максимальной скоростью диска или реальной производительностью и т.д.
Для быстрой проверки сервера мы будем использовать sysbench, этот метод тоже не чист, но позволяет оценить быстро и близко к реальному значению!
Для этого нам нужно обновить индексы и обновить пакеты, выполнив команду:
apt update && apt upgrade 
Дождитесь окончания процесса, теперь мы можем загрузить нужный пакет:
apt install sysbench 
Sysbench позволяет проводить измерения с помощью различных алгоритмов, которые обеспечивают синтетическую высокую нагрузку. Мы будем использовать метод со случайным значением, которое будет записываться и считываться.
Нам необходимо подготовить тестовые данные, если размер тестового файла меньше объема оперативной памяти, то при тестировании твердотельных или жестких дисков система может использовать кэш оперативной памяти для хранения данных. Это может привести к искажению результатов тестирования, так как операции чтения и записи будут выполняться в оперативной памяти, а не на самом диске. Для оценки реальной производительности дисковой подсистемы рекомендуется использовать тестовые файлы, превышающие объем оперативной памяти.
sysbench fileio --file-total-size=10G prepare 
Затем мы наконец запускаем наш тест:
sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 run
Значение количества потоков становится очевидным при рассмотрении задач, которые задействуют дисковую подсистему и могут выполняться одновременно. Увеличение числа потоков может повысить эффективность использования дисковых ресурсов, что делает его важным фактором для оптимизации производительности в сценариях с параллельными задачами:
sysbench fileio --file-total-size=10G --file-test-mode=rndrw --time=300 --max-requests=0 --threads=4 run
Если мы не хотим сохранять временный гигантский файл с тестовыми данными, то очистите его командой:
sysbench fileio cleanup 
В качестве результата мы можем использовать среднюю скорость диска, как мы видим, наш SSD показал отличный результат!
Стресс-тестирование – незаменимая практика для оценки поведения системы при высоких нагрузках, обеспечения оптимальной производительности и упреждающего устранения потенциальных проблем. При изучении различных аспектов производительности сервера важно не упустить из виду состояние и скорость работы диска.