1

我正在针对 PostgreSQL 运行一些性能测试,以测试数据库服务器在 VSI 上运行以及在工作节点上的 Kubernetes 上运行时的性能。我使用 PgBench 来运行这些测试。

我的数据库(在生产中配置在集群中)有很大的工作负载,所以我在 VSI(在 IBM Cloud 上)上测试了 64 个 vCPU 双处理器 2.3 GHz 32 核和 128 Gb RAM,磁盘 2Tb 每 Gb 5IOPS。

然后我在 Kubernetes (IBM Cloud) 上使用 48 个 vCPU、192 Gb RAM、磁盘 2 Tb 5 IOPS/Gb 的工作节点对其进行了测试。

问题是 Kubernetes 的性能比 VSI 差 50%,我没想到会有这么多差异。所以我试图了解什么可能是瓶颈。

  1. 测试中的磁盘相似,吞吐量相似,因此磁盘不能成为瓶颈

  2. 我使用了一项服务来访问配置为 Network Load Balancer 的 Pod(之前是 Application Load Balancer,性能更差)。但是,我还使用 Pod 到 Pod 通信进行了测试,将 PgBench 部署在绕过服务的另一个工作节点上。但没有发现任何改进。所以我认为这应该排除问题是负载均衡器。

  3. 我想为 PostgreSQL Pod 保留更多的 CPU 和 RAM,添加类似这样的内容。

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

在这一点上,我不知道我可以做些什么来提高性能。有什么建议吗?Kubernetes 增加所有这些开销是否正常?

4

0 回答 0