1
skydiver 2013-07-05 11:10:56 +08:00
多少个并发啊
|
2
itopidea 2013-07-05 11:17:15 +08:00
我也遇到这个问题,以前55个并发,耗尽1G内存。
|
3
akira 2013-07-05 11:20:44 +08:00
你这是多大规模啊
|
4
darkyoung 2013-07-05 11:23:39 +08:00
做负载均衡吧
|
5
RobinFai 2013-07-05 11:45:13 +08:00
Nginx+php-fpm支撑不起的时候, apache+php也差不多了。
换大内存服务器。改变策略,增加服务器做负载均衡。 |
6
soli 2013-07-05 11:47:34 +08:00
55 个并发太少了吧。
是不是达到带宽上限了?也就是瓶颈不在PHP这,而是在带宽? |
7
scourgen 2013-07-05 12:00:38 +08:00
无法运行的原因是什么?内存不够?进程死循环??在没有更多服务器现场数据的情况下,现在只能怀疑是你的程序有问题。
FPM只是一个跑php的载体,如果你的程序有问题,再调整FPM也是没用的。 所以strace一个进程,先看看程序到底在做什么吧 |
8
pubby 2013-07-05 12:17:35 +08:00
一味调大进程数最终只会导致整体性能下降
优化程序,请求处理越快越好。 找到瓶颈,如果瓶颈在php本身,那么考虑其它的高并发方案,比如用node.js 或者 golang重写。 如果一台机器达到上限,那就增加机器分流。 ps. 统计这玩意我都是node.js做的,直接写文件,然后后台脚本定时处理日志文件。 |
9
GTim 2013-07-05 12:21:51 +08:00
不是吧...这年头还有php-fpm把内存耗尽的...不过没关系...如果可以,做负载均衡把。没条件,把一些可以缓存的东西,先在客户端缓存起来...把一些耗时耗力的部分用纯php改写..还不行,上hidhop...杂七杂八的各种优化方法...
php-fpm进程数最好是根据内存和cpu来设置的.. |
10
BOYPT 2013-07-05 12:30:09 +08:00
进程越来越多说明你的php程序太慢,处理不过来。fpm也好apache也好,对慢代码都只有开进程。
|
11
qsun 2013-07-05 12:45:33 +08:00
统计服务器 就不要挂php好了,直接/dev/null 然后做 offline 分析
|
12
ipconfiger 2013-07-05 13:05:45 +08:00
1G内存玩什么高并发
|
13
lqs 2013-07-05 14:01:42 +08:00
『统计服务器,无法支撑大流量的并发访问,导致php统计程序无法运行。』
这句最重要的描述却一笔带过,什么叫『无法支撑』和『无法运行』? 『现在加大pm.max_children可以访问一会』 然后走向了一条错误的道路。 |
14
sarices 2013-07-05 14:04:59 +08:00
低内存最好限制一下php-fpm的进程数量
|
15
kenneth OP 我这样尝试的:
1.限制php-fpm进程数量 结果:connect() failed (110: Connection timed out) while connecting to upstream 2.我增加pm.max_children 结果:php-fpm进程不断增加,直到内存没有。 总是网站无法正常访问。 还是不知道如何解决。 |
16
ovear 2013-07-05 19:52:50 +08:00
别用lnmp用lanmp,php用apache来跑,这是cgi的通病。大压力下,掉包率很离谱
|
17
ovear 2013-07-05 19:53:38 +08:00
这就是所谓的nginx高并发下502的原因。。
|
18
felix021 2013-07-06 00:27:48 +08:00
55个并发不至于就给跑死了吧。
APC/eAccelerater/XCache之一装了没? XDEBUG装了没?看看性能热点是在什么地方。 如果热点是数据库,数据库slowlog看了没,查询都走索引了吗,用memcache/redis做缓存了吗? |
19
lightforce 2013-07-06 00:31:02 +08:00
pm= static or dynamic ?
|
20
likuku 2013-07-06 13:03:51 +08:00
统计的任务要作队列,用户提交统计任务=>丢队列,返回让用户等着去,后面统计程序从队列领任务去跑,跑完返回结果。
统计这种要实时返回,数据量大/算法复杂,都不现实。 |
21
hitsmaxft 2013-07-06 17:22:49 +08:00
你的这种情况, 我最近也遇到, fpm没有可用进程, 不断启用新的进程, 但是新进行往往都没有提供服务. 最后到达最大子进程数, 而能够正常服务的进程又到达访问次数上限, 最后所有fpm下挂载的进程都不可用.
结果就是 nginx 连不上 fpm, fpm挂着一堆不可用的进程. 不过我还没定位到故障原因, 临时解决方案就是重启fpm |
22
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实测。 |
24
hitsmaxft 2013-07-06 20:18:00 +08:00
|
25
tonlmy 2014-07-07 10:37:25 +08:00
目前也遇到这种情况,strace 进程 一直超时
|