23.06.2025

Системы Баз Данных и Эффективный Стресс-Тест

Зачем нужен стресс-тест?

Стресс-тест или нагрузочное тестирование — это важный вид деятельности для обеспечения бесперебойной работы и производительности путем имитации нагрузки на систему или приложение для анализа его поведения при высоких нагрузках. Проведение таких тестов до запуска программного обеспечения/приложения в эксплуатацию помогает выявить слабые места, которые могут повлиять на удовлетворенность пользователей или привести к сбоям из-за чрезмерных требований в пиковые периоды.

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

Как проверить СУБД?

Одним из основных компонентов любой системы является ее СУБД, часто нам необходимо проверить работу и дать адекватную оценку производительности на сервере. Многое зависит от конфигурации и аппаратных возможностей системы, конечно, что всегда приходится оценивать в настройке вообще с программным и аппаратным обеспечением сервера, в этой статье мы рассматриваем только тест СУБД.

В первую очередь нам необходимо обновить индексы и пакеты обновления на машине:

apt update && apt upgrade

Скриншот №1— Обновление пакетов

Для стресс-тестирования мы будем использовать sysbench, который представляет собой мультиинструмент, не требующий сложных тестов, экспресс-способ оценить транзакционность и скорость работы СУБД. Далее скачиваем и устанавливаем пакет из репозитория:

apt install sysbench

Скриншот №2 — Пакетная установка

Мы будем использовать для теста способ OLTP, что означает Online Transaction Processing в буквальном смысле и в процессе представляет собой одновременную обработку данных от множества пользователей. Эта система подходит для коротких и частых транзакций, для записи и чтения! Далее нам нужно провести подготовку к тесту, войти в СУБД под привилегированным пользователем, например root, и создать БД:

SHOW DATABASES;

А теперь создайте базу данных:

CREATE DATABASE gg;

Скриншот №3 — Создание БД

После создания базы данных нам нужно подготовить данные, с помощью команды мы можем создать таблицу и заполнить строку нужными записями. Обратите внимание, что необходимо изменить учетные данные:

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

Скриншот №4 — Подготовим данные

Параметры 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

Скриншот №5 — Тест

Дождитесь окончания процесса. Также одним из важных ключевых моментов в стресс-тестировании является результат работы интерпретатора. Необходимо сравнить выходные данные с теоретической нагрузкой на систему. Несколько значимых параметров в этом отчете – запросы и транзакция в секунду. Наш сервер показывает неплохой результат:

Скриншот №6 — Результаты

Теперь, если мы не хотим хранить мусорные файлы, нам нужно очистить их с помощью команды:

sysbench oltp_read_write --db-driver=mysql --mysql-host=127.0.0.1 --mysql-db=gg --mysql-user=root --mysql-password=123321 cleanup

Скриншот №7 — Очистка от мусора

Все сохраненные данные были удалены, а память очищена!

 

В целом, представленное содержание описывает пошаговый процесс стресс-тестирования СУБД с помощью sysbench, включая подготовку, выполнение, интерпретацию результатов и очистку.