Я использую Traefik в качестве входного контроллера для моей установки Kubernetes. Я решил провести тест производительности для своего приложения, но столкнулся с огромной разницей, когда отправлял запросы через Traefik.
Тест состоит из параллельной отправки запроса 10 КБ, и приложение возвращает скомпилированный результат, и, исходя из журналов моего приложения, для обработки одного запроса требуется около 5 миллисекунд. Результаты теста производительности следующие:
- Собственное приложение: время выполнения в миллисекундах: 61062
- Приложение на Kubernetes (без прохождения через Traefik и только по его IP): Время выполнения в миллисекундах: 62337
- Приложение на Kubernetes и с использованием Traefik: Время выполнения в миллисекундах: 159499
Мой вопрос в том, почему существует эта огромная разница и есть ли способ ее уменьшить (кроме добавления большего количества реплик).
Я использую эти файлы yaml для настройки Traefik:
https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-rbac.yaml
https://raw.githubusercontent.com/containous/traefik/v1.7/examples/k8s/traefik-ds.yaml