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

Тестирование производительности 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. Подробные инструкции приведены в руководстве по разработке тестов производительности .

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

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

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

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

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

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

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

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

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