为了账号安全,请及时绑定邮箱和手机立即绑定

php-fpm 的负载平均/性能问题

php-fpm 的负载平均/性能问题

PHP
MM们 2021-07-05 13:37:34
当用户加载站点(大约 3000 个在线)时,我有很大的性能错误。我有 nginx+php-fpm。当我有一些在线(~3k)php 时,会进行大量进程。然后平均负载达到 200+。拥有 128GB RAM 和 32 个内核。在那之后鬃毛用户有502错误。它有助于重新启动 php-fpm,但时间不长,进程再次成倍增加,负载增加。尝试了不同的 php max 子值。有人可以帮忙处理conf文件吗?玛比出事了。他是很久以前造的,不是我造的。
查看完整描述

1 回答

?
郎朗坤

TA贡献1921条经验 获得超9个赞

在这一点上,您的问题不在于 PHP 配置,恕我直言,您的问题在于可扩展性。

你没有提到你的服务器是有状态的还是无状态的,我想,因为你的问题是它是有状态的。另外,你没有解释你是否有一个负载平衡的服务器集群,但我假设你没有。

这意味着什么 ?

这意味着您的服务器为每个用户编写一个文件以将其会话存储在服务器文件系统中。这个过程是内存消耗者,而且它很昂贵。

一个简单的数学计算将显示您的问题,

你说你有 128G 的内存,大约 3000 个用户,这意味着如果你的 PHP 内存限制是每个用户大约 32M,他们会消耗所有可用的内存。老实说,Wich 在 2019 年基本上是极低的。

解决方案?

对于单台服务器上同时有 3000 个用户,您应该考虑负载平衡。负载平衡允许您的应用程序在多个服务器之间进行平衡,具体取决于流量。一开始它涉及很多设置和配置,但它是可行的。

另一种解决方案是将您的应用程序迁移到无状态应用程序。意味着服务器不知道用户会话,身份验证是通过令牌(JWT 来救援)完成的。如果您的应用程序很大,并且还需要一些工作,则此解决方案并不容易解决。


查看完整回答
反对 回复 2021-07-16
  • 1 回答
  • 0 关注
  • 199 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信