PostgreSQL против проблемы производительности Kubernetes

Я провожу несколько тестов производительности для PostgreSQL, чтобы проверить производительность, когда сервер БД работает на VSI и когда он работает на Kubernetes на рабочем узле. Я использую PgBench для запуска этих тестов.

Моя БД (которая в производстве настроена в кластере) имеет большую рабочую нагрузку, поэтому я тестировал на VSI (в IBM Cloud) с 64 vCPU Dual Processor 2.3 GHz 32 ядра и 128 Gb RAM, диск 2Tb 5IOPS на Gb.

Затем я протестировал его на Kubernetes (IBM Cloud) с рабочим узлом 48 vCPU, 192 ГБ RAM, диском 2 Tb 5 IOPS на ГБ.

Проблема в том, что производительность Kubernetes на 50% хуже, чем у VSI, и я не ожидал такой разницы. Поэтому я пытаюсь понять, в чем может быть узкое место.

  1. Диски в тестах похожи и пропускная способность аналогична, поэтому диск не может быть узким местом

  2. Я использовал службу для доступа к модулю, настроенному как Network Load Balancer (раньше это был Application Load Balancer, а производительность была еще хуже). Тем не менее, я также провел тест с взаимодействием Pod to Pod, развернув PgBench на другом рабочем узле в обход службы. Но никаких улучшений замечено не было. Так что я думаю, это должно исключить проблему с балансировщиком нагрузки.

  3. Я решил зарезервировать больше ЦП и ОЗУ для PostgreSQL Pod, добавив что-то вроде этого.

             resources:
       requests:
         memory: 128Gi
         cpu: 32
       limits:
         memory: 128Gi
         cpu: 32
    

На данный момент я не знаю, что я могу сделать, чтобы улучшить производительность. Любое предложение? Это нормально, что Kubernetes добавляет все эти накладные расходы?

0 ответов

Другие вопросы по тегам