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

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

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

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

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

  • 1x выделенный локальный SSD, подключённый в /var/lib/etcd
  • 1x выделенный медленный диск для ОС
  • 1.8 GB памяти
  • 2x CPU

Кластер etcd

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

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

etcd Version: 2.2.0-alpha.1+git
Git SHA: 59a5a7e
Go Version: go1.4.2
Go OS/Arch: linux/amd64

Кроме того, базовая производительность измеряется на кластере из 3 участников etcd 2.1.0 стадии alpha. Текущий коммит etcd — c7146bd5 , тот же, что использован в тестировании etcd 2.1 .

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

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

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

чтение одного ключа

размер ключа в байтах количество клиентов целевой сервер etcd QPS чтения задержка 90-го процентиля (ms)
64 1 только лидер 2804 (-5%) 0.4 (+0%)
64 64 только лидер 17816 (+0%) 5.7 (-6%)
64 256 только лидер 18667 (-6%) 20.4 (+2%)
256 1 только лидер 2181 (-15%) 0.5 (+25%)
256 64 только лидер 17435 (-7%) 6.0 (+9%)
256 256 только лидер 18180 (-8%) 21.3 (+3%)
64 64 все серверы 46965 (-4%) 2.1 (+0%)
64 256 все серверы 55286 (-6%) 7.4 (+6%)
256 64 все серверы 46603 (-6%) 2.1 (+5%)
256 256 все серверы 55291 (-6%) 7.3 (+4%)

запись одного ключа

размер ключа в байтах количество клиентов целевой сервер etcd QPS записи задержка 90-го процентиля (ms)
64 1 только лидер 76 (+22%) 19.4 (-15%)
64 64 только лидер 2461 (+45%) 31.8 (-32%)
64 256 только лидер 4275 (+1%) 69.6 (-10%)
256 1 только лидер 64 (+20%) 16.7 (-30%)
256 64 только лидер 2385 (+30%) 31.5 (-19%)
256 256 только лидер 4353 (-3%) 74.0 (+9%)
64 64 все серверы 2005 (+81%) 49.8 (-55%)
64 256 все серверы 4868 (+35%) 81.5 (-40%)
256 64 все серверы 1925 (+72%) 47.7 (-59%)
256 256 все серверы 4975 (+36%) 70.3 (-36%)

объяснение изменений производительности

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

  • QPS записи на лидер увеличился на 20~30%. Основной цикл Raft и цикл применения записей были разделены, что устранило взаимные блокировки.

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