网上流传的Linux高HTTP并发的内核相关配置不可信

2013-06-27 11:58:20 +08:00
 vietor
我的环境是CentOS,将nofile调到了65535,nginx与php-fpm进行了简单配置,并发1000没问题。

之后看了一些网上文章,包含了很多对内核的优化,尝试了一下,并发变成700左右,提示nginx连不上php-fpm但是,php-fpm没有任何提示,好像就没有接受到请求一样,被注释掉的坑人配置如下:

45#net.core.somaxconn = 262144
46#net.core.netdev_max_backlog = 262144
47#net.ipv4.tcp_max_orphans = 262144
48#net.ipv4.tcp_max_syn_backlog = 262144
49
50#net.ipv4.tcp_max_tw_buckets = 6000
51#net.ipv4.tcp_timestamps = 0
52#net.ipv4.tcp_tw_reuse = 1
53#net.ipv4.tcp_tw_recycle = 1
54#net.ipv4.tcp_fin_timeout = 1
55#net.ipv4.tcp_synack_retries = 1
56#net.ipv4.tcp_syn_retries = 1
57#net.ipv4.tcp_keepalive_time = 30
58#net.ipv4.ip_local_port_range = 1024 65535
4049 次点击
所在节点    分享发现
7 条回复
qsun
2013-06-27 12:02:11 +08:00
1000cc * PHP 75MB/c = 75G memory

您确定1000并发? PHP?
vietor
2013-06-27 12:10:27 +08:00
@qsun 我只是试了一下1000并发,拿php的curl-muil做的工具。nginx配了10个,php-fpm配了50。暂时只是为了验证存储结构的效率mongodb vs redis+daemon。
plucury
2013-06-27 12:12:42 +08:00
nginx错误码是499? 应该是后端不能及时响应nginx的请求了
vietor
2013-06-27 12:14:48 +08:00
@plucury 记得是110,无法连接到php-fpm。但php-fpm没有任何报错。我将内核配置注释掉就又可以了。
soli
2013-06-27 13:33:28 +08:00
php 一般能达到多少并发?(硬件不是太差的情况下)
vietor
2013-06-27 14:32:27 +08:00
@soli 我刚刚试了一下10000发现就4500多有效的。很多都是没有HTTP连接成功,仅有不多是Nginx连php-fpm的。当前nginx为32,php-fpm为100
vietor
2013-06-27 14:33:35 +08:00
@soli 我的机器是4核4G的一个MIN-ITX自己攒的小机器。

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

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

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

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

© 2021 V2EX