Spec-Zone.ru › MariaDB

mariadb-slap

MariaDB начиная с 10.4.6

Начиная с MariaDB 10.4.6, mariadb-slap — это символическая ссылка на mysqlslap, инструмент для нагрузочного тестирования MariaDB.

MariaDB начиная с 10.5.2

Начиная с MariaDB 10.5.2, mysqlslap — это символическая ссылка, а mariadb-slap — имя двоичного файла.

mariadb-slap — инструмент для нагрузочного тестирования MariaDB. Он позволяет эмулировать несколько одновременных подключений и многократно запускать набор запросов.

Он возвращает результаты тестирования, включая следующую информацию:

  • Среднее время выполнения всех запросов
  • Минимальное время выполнения всех запросов
  • Максимальное время выполнения всех запросов
  • Количество клиентов, выполняющих запросы
  • Среднее количество запросов на клиента

Использование mariadb-slap

Команда для использования mariadb-slap и общий синтаксис:

mariadb-slap [options]

Параметры

mariadb-slap поддерживает следующие параметры:

Вариант Описание
-a, --auto-generate-sql Автоматически генерировать SQL-запросы, если они не указаны в файлах или через параметры командной строки.
--auto-generate-sql-add-autoincrement Добавить столбец AUTO_INCREMENT в автоматически создаваемые таблицы.
--auto-generate-sql-execute-number=num Указать количество запросов для автоматической генерации.
--auto-generate-sql-guid-primary Добавить первичные ключи на основе GUID в автоматически создаваемые таблицы.
--auto-generate-sql-load-type=name Указать тип тестовой нагрузки. Допустимые значения: read (сканирование таблиц), write (вставка в таблицы), key (чтение первичных ключей), update (обновление первичных ключей) или mixed (половина вставок, половина сканирующих запросов SELECT). По умолчанию — смешанный.
--auto-generate-sql-secondary-indexes=num Количество дополнительных индексов, добавляемых в автоматически создаваемые таблицы. По умолчанию индексы не добавляются.
--auto-generate-sql-unique-query-number=num Количество уникальных запросов для генерации автоматических тестов. Например, если вы запускаете тестовый запрос, который выполняет 1000 запросов SELECT, вы можете использовать этот параметр со значением 1000, чтобы запустить 1000 уникальных запросов, или со значением 50, чтобы выполнить 50 различных запросов SELECT. По умолчанию — 10.
--auto-generate-sql-unique-write-number=num Количество уникальных запросов для auto-generate-sql-write-number.
--auto-generate-sql-write-number=num Количество строк, вставляемых для каждого потока. По умолчанию — 100.
--commit=num Количество инструкций, выполняемых перед фиксацией. По умолчанию — 0.
-C, --compress Использовать сжатие в протоколе сервер/клиент, если обе стороны его поддерживают.
-c name, --concurrency=name Количество клиентов, которые нужно смоделировать для выполнения запроса.
--create=name Файл или строка, содержащая инструкцию для создания таблицы.
--create-schema=name Схема, в которой выполняются тесты.
--csv[=name] Генерировать вывод в формате CSV в указанный файл или в стандартный вывод, если файл не указан.
-# , --debug[=options] Для отладочных сборок записывать отладочный журнал. Типичная строка debug_options — d:t:o,file_name. По умолчанию — d:t:o,/tmp/mariadb-slap.trace.
--debug-check Проверять использование памяти и открытых файлов при выходе.
-T, --debug-info Выводить некоторую отладочную информацию при выходе.
--default-auth=name Используемый по умолчанию плагин для аутентификации на стороне клиента.
--defaults-extra-file=name Прочитать этот файл после чтения глобальных файлов. Должен быть указан первым параметром.
--defaults-file=name Читать только параметры по умолчанию из указанного файла name. Должен быть указан первым параметром.
-F name, --delimiter=name Разделитель, используемый в SQL-запросах, указанных в файле или командной строке.
--detach=num Отсоединять (закрывать и переоткрывать) соединения после указанного количества запросов. По умолчанию — 0 (соединения не отсоединяются).
-e name, --engine=name Список хранилищ, разделённых запятыми, которые нужно использовать для создания таблицы. Тест выполняется для каждого хранилища. Можно также указать параметр для хранилища после #:#, например memory:max_row=2300.
-?, --help Отобразить справку и выйти.
-h name, --host=name Подключиться к серверу MariaDB на указанном хосте.
--init-command=name SQL-команда, которая выполняется при подключении к серверу MariaDB. Будет автоматически повторно выполняться при повторном подключении. Добавлен в MariaDB 5.5.34.
-i num, --iterations=num Количество раз, которое нужно запустить тесты.
--no-defaults Не читать параметры по умолчанию из файла параметров. Должен быть указан первым параметром.
--no-drop Не удалять схемы, созданные во время теста, после завершения теста.
-x name, --number-char-cols=name Количество столбцов VARCHAR, создаваемых в таблице, если задано --auto-generate-sql.
-y name, --number-int-cols=name Количество столбцов INT, создаваемых в таблице, если задано --auto-generate-sql.
--number-of-queries=num Ограничить каждый клиент примерно этим количеством запросов. Счётчик запросов учитывает разделитель инструкций. Например, если вы вызываете следующим образом, mariadb-slap --delimiter=";" --number-of-queries=10 --query="use test;insert into t values(null)", разделитель #;# распознаётся, поэтому каждая экземпляра строки запроса считается как два запроса. В результате вставляется 5 строк (а не 10).
--only-print Не подключаться к базам данных, а вместо этого выводить, что должно было быть сделано.
-p[password], --password[=password] Пароль для подключения к серверу. Если пароль не задан, он запрашивается в командной строке. Указание пароля в командной строке следует считать небезопасным. Можно использовать файл опций, чтобы избежать ввода пароля в командной строке.
-W, --pipe В Windows подключаться к серверу через именованную трубу. Этот параметр применяется только если сервер поддерживает подключения через именованные трубы.
--plugin-dir=name Директория для плагинов на стороне клиента.
-P num, --port=num Номер порта для подключения.
--post-query=name Запрос, который нужно выполнить, или файл, содержащий запрос, который нужно выполнить после завершения тестов. Это выполнение не учитывается для подсчета времени.
--post-system=name Строка system(), которая выполняется после завершения тестов. Это выполнение не учитывается для подсчета времени.
--pre-query=name Запрос, который нужно выполнить, или файл, содержащий запрос, который нужно выполнить перед запуском тестов. Это выполнение не учитывается для подсчета времени.
--pre-system=name Строка system(), которая выполняется перед запуском тестов. Это выполнение не учитывается для подсчета времени.
--print-defaults Вывести список аргументов программы и выйти. Должен быть указан первым параметром.
--protocol=name Протокол для подключения (tcp, socket, pipe, memory).
-q name, --query=name Запрос, который нужно выполнить, или файл, содержащий запрос, который нужно выполнить.
--shared-memory-base-name Имя общей памяти, которое нужно использовать для подключений Windows, использующих общую память для локального сервера (запущенного с параметром --shared-memory). Регистрозависимый.
-s, --silent Запустить программу в беззвучном режиме — без вывода.
-S, --socket=name Для подключений к localhost, файл Unix-сокет, который нужно использовать, или, в Windows, имя именованной трубы.
--ssl Включает TLS. TLS также включен даже без установки этого параметра, когда заданы некоторые другие параметры TLS. Параметр --ssl по умолчанию не включит проверку сертификата сервера по умолчанию. Для проверки сертификата сервера пользователь должен указать параметр --ssl-verify-server-cert.
--ssl-ca=name Определяет путь к файлу PEM, который должен содержать один или несколько сертификатов X509 для доверенных центров сертификации (ЦС), которые необходимо использовать для TLS. Этот параметр требует использования абсолютного пути, а не относительного. См. Обзор безопасных соединений: Центры сертификации (ЦС) для получения дополнительной информации. Этот параметр подразумевает параметр --ssl.
--ssl-capath=name Определяет путь к каталогу, который содержит один или несколько файлов PEM, каждый из которых должен содержать один сертификат X509 для доверенного центра сертификации (ЦС), который используется для TLS. Этот параметр требует использования абсолютного пути, а не относительного пути. Каталог, указанный в этом параметре, должен быть обработан командой openssl rehash. См. Обзор безопасных соединений: Центры сертификации (ЦС) для получения дополнительной информации. Этот параметр поддерживается только в том случае, если клиент был скомпилирован с OpenSSL или yaSSL. Если клиент был скомпилирован с GnuTLS или Schannel, то этот параметр не поддерживается. См. TLS и криптографические библиотеки, используемые MariaDB, чтобы узнать, какие библиотеки используются на каких платформах. Этот параметр подразумевает параметр --ssl.
--ssl-cert=name Определяет путь к файлу сертификата X509, который необходимо использовать для TLS. Этот параметр требует использования абсолютного пути, а не относительного. Этот параметр подразумевает параметр --ssl.
--ssl-cipher=name Список разрешенных шифров или наборов шифров для использования в TLS. Этот параметр подразумевает параметр --ssl.
--ssl-crl=name Определяет путь к файлу PEM, который должен содержать один или несколько отозванных сертификатов X509 для использования в TLS. Этот параметр требует использования абсолютного пути, а не относительного пути. См. Обзор безопасных соединений: списки отозванных сертификатов (CRL) для получения дополнительной информации. Этот параметр поддерживается только если клиент был скомпилирован с OpenSSL или Schannel. Если клиент был скомпилирован с yaSSL или GnuTLS, то этот параметр не поддерживается. См. TLS и криптографические библиотеки, используемые MariaDB, чтобы узнать, какие библиотеки используются на каких платформах.
--ssl-crlpath=name Определяет путь к каталогу, содержащему один или несколько файлов PEM, каждый из которых должен содержать один аннулированный сертификат X509, используемый для TLS. Этот параметр требует указания абсолютного пути, а не относительного. Каталог, указанный в этом параметре, необходимо обработать с помощью команды openssl rehash. Дополнительную информацию см. в разделе Обзор защищённых соединений: списки аннулированных сертификатов (CRLs). Этот параметр поддерживается только в том случае, если клиент был скомпилирован с OpenSSL. Если клиент был скомпилирован с yaSSL, GnuTLS или Schannel, то этот параметр не поддерживается. Дополнительную информацию о используемых библиотеках на разных платформах см. в разделе Библиотеки TLS и криптографии, используемые MariaDB.
--ssl-key=name Определяет путь к файлу с закрытым ключом, который нужно использовать для TLS. Этот параметр требует указания абсолютного пути, а не относительного. Этот параметр подразумевает параметр --ssl .
--ssl-verify-server-cert Включает проверку сертификата сервера. Этот параметр выключен по умолчанию.
-u, --user=name Пользователь для входа, если это не текущий пользователь.
-v, --verbose Более подробный вывод; вы можете использовать его несколько раз для получения ещё более подробного вывода.
-V, --version Вывод информации о версии и выход.

Файлы параметров

Помимо считывания параметров из командной строки, mariadb-slap также может считывать параметры из файлов параметров. Если в файле параметров mariadb-slap предоставлен неизвестный параметр, то он игнорируется.

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

Параметр Описание
--print-defaults Выводит список аргументов программы и завершает работу.
--no-defaults Не читать параметры по умолчанию из какого-либо файла параметров.
--defaults-file=# Считывать параметры по умолчанию только из заданного файла №.
--defaults-extra-file=# Считывать этот файл после считывания глобальных файлов.
--defaults-group-suffix=# Помимо стандартных групп параметров, также читать группы параметров с этим суффиксом.

mariadb-slap связан с MariaDB Connector/C. Однако MariaDB Connector/C пока не обрабатывает разбор файлов параметров для этого клиента. Это всё ещё выполняется кодом разбора файла параметров сервера. Дополнительную информацию см. в MDEV-19035.

Группы параметров

mariadb-slap считывает параметры из следующих групп параметров из файлов параметров:

Группа Описание
[mysqlslap] Параметры, считываемые mariadb-slap, которые включают как MariaDB Server, так и MySQL Server.
[mariadb-slap] Параметры, считываемые mariadb-slap . Доступно начиная с MariaDB 10.4.6.
[client] Параметры, считываемые всеми программами MariaDB и MySQL клиентских программ, включая MariaDB и MySQL клиенты. Например, mysqldump .
[client-server] Параметры, считываемые всеми программами MariaDB клиентских программ и MariaDB Server. Это полезно для параметров, таких как сокет и порт, которые являются общими для сервера и клиентов.
[client-mariadb] Параметры, считываемые всеми программами MariaDB клиентских программ.

Примеры

Создайте таблицу с данными, а затем запросите её с 40 одновременными подключениями по 100 раз каждое.

mariadb-slap 
 --delimiter=";" 
 --create="CREATE TABLE t (a int);INSERT INTO t VALUES (5)"
 --query="SELECT * FROM t"
 --concurrency=40
 --iterations=100

Benchmark
	Average number of seconds to run all queries: 0.010 seconds
	Minimum number of seconds to run all queries: 0.009 seconds
	Maximum number of seconds to run all queries: 0.020 seconds
	Number of clients running queries: 40
	Average number of queries per client: 1

Использование файлов для хранения SQL-кода создания и запросов. Каждый файл может содержать несколько операторов, разделенных указанным разделителем.

mariadb-slap
 --create=define.sql
 --query=query.sql
 --concurrency=10
 --iterations=20
 --delimiter=";"

Benchmark
	Average number of seconds to run all queries: 0.002 seconds
	Minimum number of seconds to run all queries: 0.002 seconds
	Maximum number of seconds to run all queries: 0.004 seconds
	Number of clients running queries: 10
	Average number of queries per client: 1
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не проверяется предварительно MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/mariadb-slap/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API