请教大家一个在 Kubernetes 上部署 Laravel 应用的问题

问题: Laravel 应用部署到 Kubernets 上后,接口的 QPS 没有随着 POD 数量的上升而上升

具体情况为:

  • 该 Laravel 应用使用 api 路由,所以没有走 session 中间件,也关闭了 throttle 限流中间件
  • 每个 POD 中包含一个 nginx 容器和 php-fpm 容器
  • 该 POD(Laravel 应用)提供了一个简单的接口,从 redis 取出一个缓存并返回
  • 当 POD 数量为 1 时,使用命令 ab -c 100 -n 500 -k http://example.com/api/test,QPS 为 100 左右。将 POD 数量调整为 20,再次压测,QPS 还是 100
  • 经过测试,发现请求已经分发到了不同的 POD 上
  • k8s 集群由两台 2 核 4G 的服务器组成,当运行 20 个 POD 时,集群 CPU 与 内存占用率都只有 20% 左右

可能是我对 Kubernets 某些概念有些误解,或者没有正确操作。希望能指点下

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我个人怀疑:

  1. ab 参数配置有问题,降低模拟客户端的数量或者调整延时可能会造成结果差异。
  2. Pod 太多。
  3. PHP-FPM 的 Workers 数量配置不当。
  4. Pod 没有均匀分布在两台节点。
4年前 评论
varro (楼主) 4年前
讨论数量: 2

我个人怀疑:

  1. ab 参数配置有问题,降低模拟客户端的数量或者调整延时可能会造成结果差异。
  2. Pod 太多。
  3. PHP-FPM 的 Workers 数量配置不当。
  4. Pod 没有均匀分布在两台节点。
4年前 评论
varro (楼主) 4年前

master节点是云服务商托管的?还是自建的? 另外你的集群两台服务器?master节点也被设置成可以被调度了?

4年前 评论
varro (楼主) 4年前
jxlwqq (作者) 4年前
varro (楼主) 4年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!