mariadb-slap
Начиная с MariaDB 10.4.6, mariadb-slap — это символическая ссылка на mysqlslap, инструмент для нагрузочного тестирования MariaDB.
Начиная с 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
© 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/