插件作者的标准出来了!Manyou诚邀开发者加盟!
“互联网平台开发者”特刊 有奖征集开发者
立即免费下载 Discuz!6.1.0正式版
Discuz! 6.1.0 使用说明
Discuz!NT2.5正式版发布
开放源码下载
UCenter Home 1.2 正式版发布
官方站 | 帮助文档
基于ECShop的网店托管-卖否
PHP就业培训直通车 | LAMP培训大连
Discuz!收费服务内容及价格
“感谢有你同行”手握手2008年数万元重奖志愿者
Discuz!/ECShop 专用官方虚拟主机
亿声传媒(Insenz)中秋祝福发送中
Comsenz 招聘信息
网店系统ECShop v2.6.0正式版火热发布
基于Discuz!的免费论坛空间5D6D
参与有奖社区调查 赢取台湾5日游
发新话题
投票主题

[讨论] apache2速度与稳定性

以前一直因为很多module需要重写 稳定性原因而拒绝使用于apache2这个非production版本.但最近尝试在流量非常大的站点上用mpm=worker的方式测试了以下.得到的结果相当令人惊叹.worker方式可以说是未来的发展方向,但现在apache group内部和php都没有对其稳定性作出保障.偶只好亲身体验了.

以前我一直主导要用1.3系列的稳定版本,但派生进程的方式的内存与资源消耗实在不敢令人恭维.相同的机器和相同的负载量,据我初步观察apache 1.3要比2多用上百M的内存,而且因为进程淤积,会带来其他各种各样的问题(如mysql缓存空间不够而使用SWAP导致的速度变慢,进程过多导致系统资源耗尽等).

接下来的工作就是观察这个站点的稳定性了.欢迎大家一起来做这个测试.
如果你的站点超过2000人在线,现在我非常推荐你用apache2,因为太慢也是不稳定,2.0版本可以明显的改善资源消耗情况.我使用的编译配置(bsd下稍微改一下即可)为

apache:
复制内容到剪贴板
代码:
CHOST="i686-pc-linux-gnu" \
CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" \
CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" \
./configure --prefix=/usr/local/apache2 --enable-so \
--with-mpm=worker \
php:
复制内容到剪贴板
代码:
CHOST="i686-pc-linux-gnu" \
CFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" \
CXXFLAGS="-march=i686 -O3 -pipe -fomit-frame-pointer" \
./configure \
--prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-config-file-path=/etc \
--with-zlib \
--with-mysql \
--with-xml \
--disable-debug \
--enable-inline-optimization -q \
--enable-thread-safety \
httpd.conf中的worker配置(最大800连接数)
复制内容到剪贴板
代码:
<IfModule worker.c>
StartServers         2
ServerLimit         80
MaxClients         800
MinSpareThreads     25
MaxSpareThreads     75
ThreadsPerChild     10
MaxRequestsPerChild  0
</IfModule>
注意用worker方式编译~如果用2.0还用perfork方式我觉得和1.3相比意义不大

投票项目 ( 多选 ) 参与人数 63  

1.  apache 1.3 效率更高
 

16 (5.65%)

2.  apache 2 效率更高
 

45 (15.90%)

3.  apache 1.3 更稳定
 

39 (13.78%)

4.  apache 2 更稳定
 

28 (9.89%)

5.  总体讲 apache 1.3 更好
 

20 (7.07%)

6.  总体讲 apache 2 更好
 

128 (45.23%)

7.  apache 没有其他 httpd 好
 

7 (2.47%)

版块跳转