Nginx+php-fpm无法支撑大流量的并发访问?

2013-07-05 11:08:57 +08:00
 kenneth
统计服务器,无法支撑大流量的并发访问,导致php统计程序无法运行。

现在加大pm.max_children可以访问一会,但是php-fpm进程会越来越多,直到内存耗尽。

求解决思路。

Nginx错误日志

connect() failed (110: Connection timed out) while connecting to upstream

php-fpm日志

[05-Jul-2013 02:07:14] NOTICE: [pool www] child 1389 exited with code 0 after 31650.855799 seconds from start
[05-Jul-2013 02:07:14] NOTICE: [pool www] child 1778 started
[05-Jul-2013 02:08:53] NOTICE: [pool www] child 1382 exited with code 0 after 31750.211689 seconds from start
[05-Jul-2013 02:08:53] NOTICE: [pool www] child 1779 started
[05-Jul-2013 02:10:33] NOTICE: [pool www] child 1394 exited with code 0 after 31849.875417 seconds from start
[05-Jul-2013 02:10:33] NOTICE: [pool www] child 1794 started
[05-Jul-2013 02:26:55] NOTICE: [pool www] child 1391 exited with code 0 after 32831.675556 seconds from start
[05-Jul-2013 02:26:55] NOTICE: [pool www] child 1799 started
[05-Jul-2013 02:58:17] NOTICE: [pool www] child 1372 exited with code 0 after 34714.447165 seconds from start
[05-Jul-2013 02:58:17] NOTICE: [pool www] child 1815 started
16157 次点击
所在节点    PHP
25 条回复
hitsmaxft
2013-07-06 17:22:49 +08:00
你的这种情况, 我最近也遇到, fpm没有可用进程, 不断启用新的进程, 但是新进行往往都没有提供服务. 最后到达最大子进程数, 而能够正常服务的进程又到达访问次数上限, 最后所有fpm下挂载的进程都不可用.

结果就是 nginx 连不上 fpm, fpm挂着一堆不可用的进程.

不过我还没定位到故障原因, 临时解决方案就是重启fpm
msg7086
2013-07-06 19:37:06 +08:00
我以前在一台VPS上试跑过统计服务。nginx+php-fpm大概可以承受150req/s。

后来改用离线处理法,把nginx的access log写入文件里,用cron每分钟mv + kill -USR + 分析日志文件后更新memcache里的数据,然后nginx直接relay到memcache里取数据返回。

这种架构可以轻松撑起500req+/s的访问。

双核256M内存VPS实测。
kenneth
2013-07-06 19:50:02 +08:00
@hitsmaxft 你描述的很清晰,我们遇到了一样的问题。目前我也没有解决,但是会一一尝试大家都建议。
hitsmaxft
2013-07-06 20:18:00 +08:00
@kenneth 我看大伙的说法都是觉得phpfpm服务能力达不到当前并发的水平.

但是我感觉问题的关键并不是php业务的性能问题. 因为发生问题的时间都在深夜流量低谷, 而不是流量高峰.
tonlmy
2014-07-07 10:37:25 +08:00
目前也遇到这种情况,strace 进程 一直超时

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/74831

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX