Тестування продуктивності etcd v2.2.0-rc
Фізична машина
Тип машини GCE n1-highcpu-2
- 1x виділений локальний SSD, змонтований у /var/lib/etcd
- 1x виділений повільний диск для ОС
- 1.8 ГБ памʼяті
- 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-stage для формування кластера для отримання базової продуктивності. Коміт head etcd знаходиться на c7146bd5, що є тим самим, який ми використовували в тестуванні продуктивності etcd 2.1.
Тестування
Запустіть іншу машину та використовуйте hey HTTP benchmark tool для надсилання запитів до кожного учасника etcd. Перевірте керівництво з тестування продуктивності для детальних інструкцій.
Продуктивність
читання одного ключа
| розмір ключа в байтах | кількість клієнтів | цільовий сервер etcd | QPS читання | 90-й процентиль затримки (мс) |
|---|---|---|---|---|
| 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-й процентиль затримки (мс) |
|---|---|---|---|---|
| 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%, оскільки послідовник може отримати останній індекс коміту раніше і швидше застосовувати пропозиції.
Відгук
Чи це було корисним?
Раді чути! Будь ласка, повідомте нам, як ми можемо зробити краще.
Дуже шкода це чути. Будь ласка, повідомте нам, як ми можемо зробити краще.