Тестирование производительности HighLoad-проектов
Как известно, диски High IOPS SSD и Low Latency NVMe во много раз превосходят HDD и SSD по своей производительности. Однако каким образом сделать выбор? И как вообще убедиться, что для проекта хватит возможностей High IOPS SSD либо их скорости будет недостаточно и лучше подойдут Low Latency NVMe?
Можно ли получить ответы на эти вопросы? Можно, но только путем тестирования программного приложения под HighLoad-нагрузкой. В обратном случае вы не сможете выяснить, какая конкретно производительность дисковой подсистемы понадобится на конкретном проекте, ведь итоговые цифры зависят от множества факторов (какие запросы выполняются, в каком количестве и т. п.). И если объем дисков вы сможете подобрать, имея лишь исходные данные о проекте, то требуемую производительность вы сможете определить лишь посредством тщательного тестирования.
В общем случае тестирование производительности состоит из ряда шагов:
- Определение критериев успешности тестирования. Сюда следует отнести величину задержки, количество операций ввода/вывода, пропускную способность — то есть параметры дисковой подсистемы, необходимые для эффективной работы конкретного программного приложения в момент максимальной нагрузки.
- Настройка мониторинга выбранных параметров.
- Подготовка тестового стенда с минимальными ресурсами, которые будут достаточны для удовлетворения ваших требований (определены на первом степе).
- Запуск нагрузочного тестирования с заранее подготовленными синтетическими данными, которые сопоставимы с максимально возможными нагрузками на ваше программное приложение.
- Определение степени достижения показателей, которые выбраны на первом шаге. Если достичь нужных показателей не удалось, на тестовом стенде следует увеличить объем ресурсов или, при наличии такой возможности, происходит пересмотр архитектуры приложения, после чего производится ретестинг.
Если нужные показатели достигнуты, можно приступать к миграции в облако либо к промышленной эксплуатации, используя тот тип дисков, который подойдет под требования вашего приложения. Однако надо в любом случае понимать, что единого идеального алгоритма по выбору между High IOPS SSD/Low Latency NVMe не существует и для каждого отдельного бизнес-кейса нужен анализ требований к производительности. Ну и, конечно же, тестирование, о котором было подробно рассказано выше.
По материалам https://mcs.mail.ru/blog/.