1
zpfhbyx 318 天前
fpm.slow.log 开一下看看
|
2
yagamisam OP @zpfhbyx 这个是看 php 运行缓慢的吗?好像不太一样。
这边看起来像是 php 把数据返回给 apache 了,但是 apache 在大概 10 秒后才会发出网络包。 这个系统平均并发在 600 左右。每天只会出现这个情况大概 300-400 次。 |
3
zpfhbyx 318 天前
你可以怀疑自己的代码..也不要怀疑 fpm 跟 apache...
|
4
zpfhbyx 318 天前
他们出事故的概率很低.
|
5
8355 318 天前
其实就是你 phpfpm 的进程被并发打满导致的。
假设你的每次请求执行需要 10 秒 fpm 有 3 个进程,只需要 3 个请求就可以占满所有。 apache 的超时时间也是 10 秒 此时第 4 个请求进来就没有 fpm 去处理了,会由 apache 超时返回。 这个是很基础的东西了,跟什么语言后端没什么关系。 可以尝试看一下 php 配置文件的 max_child 是不是设置过小,可以尝试调大和附近几个相关的配置 |
6
yagamisam OP @8355 我检查一下这个看看。因为这是个私有化部署的系统,细节和技术方面我这边也不算太懂。
上面的描述可能有误,并不是 apache 返回超时。 第三方系统'C'向我们系统请求 api ,因为我们返回的太慢,C 系统弹窗提示超时。不过看 apache 的日志,虽然慢了很多,但还是把数据返回过去了的。 还有个细节是,假设 C 系统向我这边发了 123456 个请求,可能 2 会慢,但是 13456 会正常发出。 |
8
C603H6r18Q1mSP9N 318 天前
如果是因为并发上来了,加服务器 吧
|