Перейти к содержанию

Тестирование производительности etcd v2.2.0

Показатели производительности etcd v2.2.0

Физические машины

Тип машины GCE n1-highcpu-2

  • 1x выделенный локальный SSD, используемый как каталог данных etcd
  • 1x выделенный медленный диск для ОС
  • 1.8 GB памяти
  • 2x CPU

Кластер etcd

3 участника etcd 2.2.0, каждый работает на отдельной машине.

Точные версии:

etcd Version: 2.2.0
Git SHA: e4561dd
Go Version: go1.5
Go OS/Arch: linux/amd64

Тестирование

Запустите ещё одну машину вне кластера etcd и примените инструмент HTTP-тестирования hey с патчем повторного использования соединений для отправки запросов каждому участнику кластера etcd. Патч и шаги для воспроизведения процедуры приведены в инструкции по тестированию .

Производительность вычислена по результатам 100 раундов тестирования.

Производительность

Производительность чтения одного ключа

размер ключа в байтахколичество клиентовцелевой сервер etcdсредний QPS чтениястандартное отклонение QPS чтениясредняя задержка 90-го процентиля (ms)стандартное отклонение задержки
641только лидер23032000.490.06
6464только лидер150486857.600.46
64256только лидер1450843429.761.05
2561только лидер21622140.520.06
25664только лидер147897927.690.48
256256только лидер1442451229.921.42
6464все серверы4575220482.470.14
64256все серверы46592127310.140.59
25664все серверы4533218472.480.12
256256все серверы46485134010.180.74

Производительность записи одного ключа

размер ключа в байтахколичество клиентовцелевой сервер etcdсредний QPS записистандартное отклонение QPS записисредняя задержка 90-го процентиля (ms)стандартное отклонение задержки
641только лидер55424.5113.26
6464только лидер213912535.233.40
64256только лидер458158170.5310.22
2561только лидер56422.374.33
25664только лидер205215136.834.20
256256только лидер444256071.5910.03
6464все серверы16258558.515.14
64256все серверы446129889.4736.48
25664все серверы15999460.116.43
256256все серверы431519388.987.01

Изменения производительности

  • Поскольку etcd теперь записывает метрики для каждого вызова API, в большинстве сценариев QPS чтения немного снизился. Это минимальное влияние на производительность признано разумной платой за широкий набор данных для мониторинга и отладки.

  • QPS записи на лидерах кластера немного увеличился. Основной цикл и циклы применения записей были разделены в логике Raft etcd, что устранило несколько блокировок между ними.

  • QPS записи на всех участниках значительно увеличился, поскольку последователи теперь раньше получают последний зафиксированный индекс и быстрее фиксируют предложения.