http_load: тестирование производительности MySQL на примере

Утилита http_load для тестирования (бенчмаркинга) MySQLВ предыдущей статье мы изучили конкретные утилиты и инструменты для тестирования базы данных MySQL. В этом статье мы приведем примеры реальных эталонных тестов, выполненных с помощью вышеупомянутых инструментов. Мы не можем дать исчерпывающее описание каждого инструмента, но эти примеры помогут вам решить, какие эталон­ные тесты могут оказаться полезными для ваших целей, и начать их использовать. Начнем с утилиты http_load.

Начнем с простого примера, демонстрирующего работу http_load. Мы будем использовать следующие адреса URL, которые сохранили в файле urls.txt:

В простейшем варианте http_load извлекает страницы по указанным адресам в цикле. Программа делает это с максимально возможной скоростью:

$ http_load -parallel 1 -seconds 10 urls.txt
19 fetches, 1 max parallel, 837929 bytes, in 10.0003 seconds
44101.5 mean bytes/connection
1.89995 fetches/sec, 83790.7 bytes/sec
msecs/connect: 41.6647 mean, 56.156 max, 38.21 min
msecs/first-response: 320.207 mean, 508.958 max, 179.308 min
HTTP response codes:
   code 200 - 19

Результаты вполне понятны — они всего лишь показывают статистическую инфор­мацию о запросах.

Немного более сложный сценарий заключается в извлечении адресов URL с макси­мально возможной скоростью в цикле, но с имитацией пяти параллельных пользо­вателей:

$ http_load -parallel 5 -seconds 10 urls.txt
94 fetches, 5 max parallel, 4.75565e+06 bytes, in 10.0005 seconds
50592 mean bytes/connection
9.39953 fetches/sec, 475541 bytes/sec
msecs/connect: 65.1983 mean, 169.991 max, 38.189 min
msecs/first-response: 245.014 mean, 993.059 max, 99.646 min
HTTP response codes:
   code 200 - 94

Вместо максимально быстрого извлечения мы можем симулировать нагрузку для прогнозируемой частоты запросов (например, пять раз в секунду):

$ http_load -rate 5 -seconds 10 urls.txt
48 fetches, 4 max parallel, 2.50104e+06 bytes, in 10 seconds
52105 mean bytes/connection
4.8 fetches/sec, 250104 bytes/sec
msecs/connect: 42.5931 mean, 60.462 max, 38.117 min
msecs/first-response: 246.811 mean, 546.203 max, 108.363 min
HTTP response codes:
   code 200 - 48

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

$ http_load -rate 20 -seconds 10 urls.txt
111 fetches, 89 max parallel, 5.91142e+06 bytes, in 10.0001 seconds
53256.1 mean bytes/connection
11.0998 fetches/sec, 591134 bytes/sec
msecs/connect: 100.384 mean, 211.885 max, 38.214 min
msecs/first-response: 2163.51 mean, 7862.77 max, 933.708 min
HTTP response codes:
   code 200 -- 111

 

Вас заинтересует / Intresting for you:

Модель развития базы данных My...
Модель развития базы данных My... 1407 просмотров Ирина Светлова Thu, 10 Jan 2019, 12:29:03
Выбор оптимальных типов данных...
Выбор оптимальных типов данных... 9718 просмотров Валерий Павлюков Sun, 27 Oct 2019, 15:24:19
Обзор версий MySQL - какой рел...
Обзор версий MySQL - какой рел... 10558 просмотров Ирина Светлова Fri, 05 Feb 2021, 17:19:41
Использование MySQL в качестве...
Использование MySQL в качестве... 2247 просмотров Андрей Волков Tue, 01 Oct 2019, 05:41:51
Войдите чтобы комментировать