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. Требования к производительности
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-запроса.
Измените 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 представлен ниже:
График времени выполнения запросов представлен ниже:
Измените 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 представлен ниже:
График времени выполнения запросов представлен ниже:
Измените 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 )