1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/blackeybaord-kingshard

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
kingshard_performance_test.md 11 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 18:42 b4fbb46

Kingshard: отчёт о тестировании производительности

1. Тестовая среда

Категория Наименование
OS Облачный хост Ubuntu 14.04 LTS
CPU Common KVM CPU @ 2.40GHz *4
RAM 8GB
DISK 500GB
kingshard master-ветка
Mysql v5.6.25
Sysbench v0.5

2. Требования к производительности

  1. Сравнить разницу в производительности при отправке SQL-запросов через kingshard и напрямую в DB.
  2. Изучить влияние параметра max_conns_limit в конфигурационном файле на kingshard, найти оптимальное значение.

3. Подготовка к тестированию

  • 3.1. Создание среды для тестирования производительности kingshard: Используя конфигурацию из четырёх серверов, была создана среда для тестирования производительности kingshard. Серверы A, B, C и D находятся в одном сегменте сети. Топология сети представлена на схеме:

    Топологическая схема

    Для получения дополнительной информации о настройке и установке kingshard обратитесь к соответствующему документу. Для получения информации об установке sysbench версии 0.5 обратитесь к документации.

4. Процесс тестирования

Выполните следующую команду для подготовки тестовых данных:

time sysbench --test=/data/home/test_user/software/sysbench/sysbench/tests/db/oltp.lua \
              --mysql-host=host \
              --mysql-port=9696 \
              --mysql-user=kingshard \
              --mysql-password=kingshard \
              --mysql-db=kingshard \
              --oltp-tables-count=1 \
              --oltp-table-size=1000000 \
              --num-threads=50 \
              --max-requests=1000000 \
              --report-interval=1 \
              prepare

Эта команда создаст таблицу sbtest1 с объёмом данных 100 000, структура таблицы:

CREATE TABLE `sbtest1` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `k` int(10) unsigned NOT NULL DEFAULT '0',
  `c` char(120) NOT NULL DEFAULT '',
  `pad` char(60) NOT NULL DEFAULT '',
  KEY `xid` (`id`),
  KEY `k_1` (`k`)
) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=utf8 MAX_ROWS=1000000;

4.1 Сравнение производительности между kingshard и прямым подключением к DB

Сравните производительность kingshard при пересылке SQL-запросов и прямого подключения к DB, используя sysbench для измерения двух показателей: QPS (количество запросов в секунду) и среднее время обработки каждого SQL-запроса.

4.1.1 Сравнение kingshard и прямого подключения к БД для чтения

Измените host и port, чтобы выполнить следующие команды для проверки kingshard или прямого подключения к базе данных:

time sysbench --test=/data/home/test_user/software/sysbench/sysbench/tests/db/select.lua \
              --mysql-host=host \
              --mysql-port=9696 \
              --mysql-user=kingshard \
              --mysql-password=kingshard \
              --mysql-db=kingshard \
              --oltp-tables-count=1 \
              --oltp-table-size=1000000 \
              --num-threads=16 \
              --max-requests=1000000 \
              --report-interval=1 \
              --max-time=20 \
              run

Используя sysbench, протестируйте различные уровни параллелизма потоков, изменяя параметр --num-threads. Выполните максимальное количество запросов 1 000 000 для операции select, измеряя QPS и среднее время выполнения каждого запроса. После трёх повторений каждой группы данных вычислите среднее значение. Результаты сравнения представлены в таблице:

Таблица сравнения

График QPS представлен ниже:

График QPS

График времени выполнения запросов представлен ниже:

График времени выполнения

4.1.2 Сравнение kingshard и прямого подключения к БД для операций чтения и записи в соотношении 4:1

Измените host и port, чтобы выполнить следующую команду для проверки kingshard или прямого подключения к базе данных:

ysbench --test=/data/home/test_user/software/sysbench/sysbench/tests/db/oltp.lua \
              --mysql-host=host \
              --mysql-port=3306 \
              --mysql-user=kingshard \
              --mysql-password=ks \
              --mysql-db=kingshard \
              --oltp-tables-count=1 \
              --oltp-table-size=1000000 \
              --num-threads=16 \
              --max-requests=1000000 \
              --report-interval=1 \
              --max-time=20 \
              run

Используя sysbench, выполните максимальное количество запросов 1 000 000 для различных уровней параллелизма потоков. Измерьте QPS и среднее время выполнения каждого запроса для операций select, update, insert и delete. После трёх повторений каждой группы данных вычислите среднее значение. Результаты сравнения представлены в таблице:

Сравнение результатов

График QPS представлен ниже:

График QPS

График времени выполнения запросов представлен ниже:

График времени выполнения

4.1.3 Сравнение kingshard и прямого подключения к БД только для записи

Измените host и port, чтобы выполнить следующую команду для проверки kingshard или прямого подключения к базе данных:

time sysbench
``` **Тестирование производительности Kingshard**

В данном тексте описывается тестирование производительности системы Kingshard с использованием инструмента Sysbench. В ходе тестирования оценивались различные параметры, такие как количество одновременных потоков, максимальное количество запросов и другие.

Были проведены тесты для оценки производительности при различных условиях:
* с разным количеством одновременных потоков;
* при подключении к Kingshard и прямом подключении к базе данных (DB);
* для операций вставки (insert).

Результаты тестов показали, что при небольшом количестве одновременных потоков разница в производительности между подключением к Kingshard и прямым подключением к DB была значительной. Это объясняется тем, что при малом количестве потоков Kingshard не может полностью использовать свою производительность, и влияние сетевых задержек на QPS становится основным фактором.

При увеличении количества одновременных потоков производительность Kingshard начинает проявляться в полной мере, и разница в QPS между подключением к нему и прямым подключением к БД становится более заметной.

Также было проведено тестирование влияния параметра max_conns_limit на производительность Kingshard. Этот параметр определяет максимальное количество подключений, которые могут быть созданы при инициализации Kingshard. Результаты показали, что оптимальное значение этого параметра составляет около 128. При этом дальнейшее увеличение значения не приводит к значительному улучшению производительности.

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

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/blackeybaord-kingshard.git
git@api.gitlife.ru:oschina-mirror/blackeybaord-kingshard.git
oschina-mirror
blackeybaord-kingshard
blackeybaord-kingshard
master