免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1072 | 回复: 2
打印 上一主题 下一主题

[Web] [警告即将删除垃圾标题]出一个问题,大家讨论(希望能深入一些) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-09-30 14:28 |只看该作者 |倒序浏览
[转文]

自从apache2.0出来之后,跑线程成了一个相当理想的方式,因此直到今天早上我还是一直认为进程模式要逊色于线程模式。但是从今天的实际使用情况来看,进程模式在某些地方还是要优于线程的。

实例:
在一台Sun的U80的机器上,虽然老了一点,但是跑个apache+php应该问题不大吧:)内存2G
原来这台机器上跑得是apache1.1.12+php4.0.1很老了。一直这样跑了几年了,一直没有出什么问题。但是现在访问量加大,而当时编译的时候没有修改httpd.h,因此MaxClint最大只能支持到256,而不能满足需求了,否则访问速度奇慢无比。由于以前的思想固化认为跑线程一定性能更好,而且2.0不需要修改源码,随便设置:)。因此就重新编译了apache2.0.50+php4.3.8,由于一直使用worker的MPM方式,其他MPM,一直觉得一般,这次也照旧拉。。。:)。编译安装完成之后,配置MPM,设了3个参数:
MaxClient                            1000
ThreadsPerChild                  25
ServerLimit                          40
这个设置我认为不是很过分吧。。。最多限制起40个进程,每个进程含有25个线程。
可是实际情况很糟,load average开始迅速串升,最高到了200多。。。该死,那我想可能参数设的太大了,我从小开始设起总行了吧:
MaxClient                             300
ThreadsPerChild                   30
ServerLimit                           10
还是不行。load average还是会上串。。。
还试了一些参数包括很变态的把ThreadsPerChild设成1,而ServerLimit设成300,还是会上串。
把ServerLimit设成200,ThreadsPerChild还是1的情况也没有apache1.x好。
最后我只能重新编译apache和php,选择1.3.31,修改httpd.h,把最大连接支持到2560,编译完成后MaxClient设成800, ps -ef|grep -i httpd|wc -l 大概数字在500附近,load average也比较正常。没有超过10,一般稳定在5左右。

当然需要申明的是:线程模式在机器性能比较高的情况下,特别是cpu比较高的情况下确实要比进程要好。不过还有一点需要考虑的是,我这边的页面需要和oracle数据库以及java程序打交道,因此可能这样的页面使用进程比较好。这是我的一点想法,欢迎驳斥我!指出我理解有偏颇的地方!

论坛徽章:
0
2 [报告]
发表于 2004-09-30 14:32 |只看该作者

[警告即将删除垃圾标题]出一个问题,大家讨论(希望能深入一些)

在几个一般的版块看了些贴子(本人小机经验少,所以能在低级的地方混了),
有一个笼统的认识,贴子都比较浮,没有深度,涉及关键技术,含糊其词,
也许都是同行,多说了半句,自己饭碗不保。

出了上面的题目就是想让大家就自己的经验和对一些理论的理解,来一点
”有深度“的讨论。

论坛徽章:
0
3 [报告]
发表于 2004-10-08 14:38 |只看该作者

[警告即将删除垃圾标题]出一个问题,大家讨论(希望能深入一些)

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP