Зачем нужен стресс-тест?
Стресс-тест или нагрузочное тестирование — это важный вид деятельности для обеспечения бесперебойной работы и производительности путем имитации нагрузки на систему или приложение для анализа его поведения при высоких нагрузках. Проведение таких тестов до запуска программного обеспечения/приложения в эксплуатацию помогает выявить слабые места, которые могут повлиять на удовлетворенность пользователей или привести к сбоям из-за чрезмерных требований в пиковые периоды.
Таким образом, инструменты стресс-тестирования играют важную роль в тестировании сценариев, которые обычно невозможны при работе с меньшей нагрузкой, что дает нам преимущество в обеспечении успешной оптимизации производительности перед выпуском на рынок.
Как проверить СУБД?
Одним из основных компонентов любой системы является ее СУБД, часто нам необходимо проверить работу и дать адекватную оценку производительности на сервере. Многое зависит от конфигурации и аппаратных возможностей системы, конечно, что всегда приходится оценивать в настройке вообще с программным и аппаратным обеспечением сервера, в этой статье мы рассматриваем только тест СУБД.
В первую очередь нам необходимо обновить индексы и пакеты обновления на машине:
apt update && apt upgrade 
Для стресс-тестирования мы будем использовать sysbench, который представляет собой мультиинструмент, не требующий сложных тестов, экспресс-способ оценить транзакционность и скорость работы СУБД. Далее скачиваем и устанавливаем пакет из репозитория:
apt install sysbench
Мы будем использовать для теста способ OLTP, что означает Online Transaction Processing в буквальном смысле и в процессе представляет собой одновременную обработку данных от множества пользователей. Эта система подходит для коротких и частых транзакций, для записи и чтения! Далее нам нужно провести подготовку к тесту, войти в СУБД под привилегированным пользователем, например root, и создать БД:
SHOW DATABASES;А теперь создайте базу данных:
CREATE DATABASE gg;
После создания базы данных нам нужно подготовить данные, с помощью команды мы можем создать таблицу и заполнить строку нужными записями. Обратите внимание, что необходимо изменить учетные данные:
sysbench oltp_read_write --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg - -mysql-user=root --mysql-password=123321 prepare 
Параметры size таблицы указывают на количество записей в таблице, user и password – учетные данные, db-driver использует систему СУБД для проверки. Была создана таблица sbtest1. Теперь мы можем запустить тест командой ниже:
sysbench oltp_read_write --threads=2 --report-interval=3 --histogram --time=50 --table-size=1000000 --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg - -mysql-user=root --mysql-password=123321 run 
Дождитесь окончания процесса. Также одним из важных ключевых моментов в стресс-тестировании является результат работы интерпретатора. Необходимо сравнить выходные данные с теоретической нагрузкой на систему. Несколько значимых параметров в этом отчете – запросы и транзакция в секунду. Наш сервер показывает неплохой результат:

Теперь, если мы не хотим хранить мусорные файлы, нам нужно очистить их с помощью команды:
sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 cleanup 
Все сохраненные данные были удалены, а память очищена!
В целом, представленное содержание описывает пошаговый процесс стресс-тестирования СУБД с помощью sysbench, включая подготовку, выполнение, интерпретацию результатов и очистку.