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

Тестирование производительности 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) стандартное отклонение задержки
64 1 только лидер 2303 200 0.49 0.06
64 64 только лидер 15048 685 7.60 0.46
64 256 только лидер 14508 434 29.76 1.05
256 1 только лидер 2162 214 0.52 0.06
256 64 только лидер 14789 792 7.69 0.48
256 256 только лидер 14424 512 29.92 1.42
64 64 все серверы 45752 2048 2.47 0.14
64 256 все серверы 46592 1273 10.14 0.59
256 64 все серверы 45332 1847 2.48 0.12
256 256 все серверы 46485 1340 10.18 0.74

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

размер ключа в байтах количество клиентов целевой сервер etcd средний QPS записи стандартное отклонение QPS записи средняя задержка 90-го процентиля (ms) стандартное отклонение задержки
64 1 только лидер 55 4 24.51 13.26
64 64 только лидер 2139 125 35.23 3.40
64 256 только лидер 4581 581 70.53 10.22
256 1 только лидер 56 4 22.37 4.33
256 64 только лидер 2052 151 36.83 4.20
256 256 только лидер 4442 560 71.59 10.03
64 64 все серверы 1625 85 58.51 5.14
64 256 все серверы 4461 298 89.47 36.48
256 64 все серверы 1599 94 60.11 6.43
256 256 все серверы 4315 193 88.98 7.01

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

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

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

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