![]() | 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 无法运行的原因是什么?内存不够?进程死循环??在没有更多服务器现场数据的情况下,现在只能怀疑是你的程序有问题。 FPM只是一个跑php的载体,如果你的程序有问题,再调整FPM也是没用的。 所以strace一个进程,先看看程序到底在做什么吧 |
![]() | 8 pubby 2013-07-05 12:17:35 +08:00 一味调大进程数最终只会导致整体性能下降 优化程序,请求处理越快越好。 找到瓶颈,如果瓶颈在php本身,那么考虑其它的高并发方案,比如用node.js 或者 golang重写。 如果一台机器达到上限,那就增加机器分流。 ps. 统计这玩意我都是node.js做的,直接写文件,然后后台脚本定时处理日志文件。 |
9 yemoluo 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 atonst 2014-07-07 10:37:25 +08:00 目前也遇到这种情况,strace 进程 一直超时 |