服务器的奇怪状况,请求大家帮助

2015-11-21 01:07:54 +08:00
 kran
在做服务器压测,环境是 nginx , php5.2
硬件环境是 4 核 2.7ghz 和 8g 内存虚拟机
php 开 512 进程, nginx 4 worker

用 jmeter 压测 500 线程组,持续压 2 分钟,前 30 秒大概能维持 800QPS ,在请求总数达到 27000(大概 30 秒)后开始卡住, 502 开始出现,卡住 1 分钟后开始恢复响应能力。

这样的状况会是哪里出问题了呢?
2139 次点击
所在节点    问与答
9 条回复
RemRain
2015-11-21 01:41:35 +08:00
进程开太多,平均每核处理 128 个进程, cpu 时间全浪费在进程调度上了。调到 16 或者 32 试试
msg7086
2015-11-21 03:27:52 +08:00
512 进程……改成 32 试试……? 800qps 挺吓人了(
dndx
2015-11-21 03:57:08 +08:00
开这么多进程 CPU 时间全浪费在 context switching 上面了。建议降低 PHP 进程数。
wangluowangwang
2015-11-21 04:32:13 +08:00
进程太多,减少 fastcgi 进程数量。
ryd994
2015-11-21 05:04:56 +08:00
你就 4 个核,跑 512 进程有什么用?
一般和核心数一样或者+1 ,如果有比较多的 IO ,那再另外讨论,以刚好用满 CPU 为度。
8g/512 一个进程只能用 16M 内存,呵呵呵
后面卡估计是卡死在 swap 上了
vietor
2015-11-21 07:36:08 +08:00
cache 刷新间隔
Tianpu
2015-11-21 08:01:49 +08:00
php 多开几个进程池,静态进程,比如 64*8 这样子分配。可能 ulimit 也要设置下。

前 30 秒还有进程分配,然后 php 卡死了,飞快的返回 502 。

还有,你测试脚本是啥?
mahone3297
2015-11-21 09:43:19 +08:00
大家都分析的好有道理,学习。。。
kran
2015-11-21 21:11:23 +08:00
现在的问题不是上面那个了,我把脚本换成 sleep(0.5); 现在用很小的量压,也会有 502 错误发生,不会卡住了。

php5.5 不会有错误, 5.2 有错误。

@vietor 请问这个 cache 指的是哪个?

@Tianpu 脚本是 sleep(0.5);
@dndx 很小的量压也有错。 CPU 还不满

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

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

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

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

© 2021 V2EX