Discuz!官方免费开源建站系统

 找回密码
 立即注册
搜索

谈谈大型高负载网站服务器的优化心得!

[复制链接]
cqfanli 发表于 2006-3-25 09:14:26 | 显示全部楼层 |阅读模式
因为工作的关系,我做过几个大型网站(书库、证券)的相关优化工作,一般是在世界排行1000-4000以内的~~
这些网站使用的程序各不一样,配置也不尽相同,但是它们有一个共同的特点,就是使用的是FREEBSD系统,高配置高负载,PV值非常高,都是需要用两台以上独立主机来支持的网站~
我在优化及跟踪的过程中,开始效果也差强人意,也不太理想,后来通过阅读大量资料才慢慢理清了一些思路,写出来希望给大家有所帮助。
WEB服务器配置是DUAL XEON 2.4G以上,2G内存以上,SCSI硬盘一块以上,FREEBSD 5.X以上~~
数据库服务器与WEB服务器类似~~
书库程序是使用的jieqi的,论坛是使用的Discuz!的
apache 2.x + php 4.x + mysql 4.0.x + zend + 100M光纤独享带宽

1、一定要重新编译内核,根据自己对内核认识的程度和服务器的具体配置来优化,记住打开SMP,也可以使用ULE调度。
2、要优化系统的值,一般是添加入/etc/sysctl.conf里面,要加大内核文件并发数量及其他优化等值。
3、APACHE 2使用perwork工作模式就可以了,我试过worker模式,实在是差强人意呀。修改httpd.conf里面的值,加大并发数量和关闭不需要的模块。因为apache非常消耗内存,尽量轻装上阵~~ 可以适当的使用长连接。关闭日志。
4、PHP编译的时候,注意要尽量以实用为目的加入参数,没有用到的坚决不加,以免浪费系统资源。
5、ZEND要使用较小的优化等级,15就足够了,1023级别只会加重服务器负载~
6、MYSQL要尽量少使用长连接,限制为2-3秒即可~
7、要全部采用手工编译方式,不要用ports安装,因为它会带上很多你不需要的模块,切记。
8、对于这类高负载高在线人数的大站,所有优化的思路就是把尽可能多的系统资源,提供给WEB和MYSQL服务,并且让这些服务单个进程可以占用尽可能少的系统资源。如果系统一开始大量使用SWAP,对于这些服务器来说,服务器状态将会极剧恶化。
9、长时间观察跟踪调试,有什么问题尽快解决~~

就想到这些东东,欢迎大家补充~~

梦飞
http://onlinecq.com
2006/4/25
回复

使用道具 举报

lushy 发表于 2006-3-26 19:57:50 | 显示全部楼层
可以适当的使用长连接
================
是指keepalive么?如果是的话,不太同意这个观点。
回复

使用道具 举报

 楼主| cqfanli 发表于 2006-3-26 21:57:35 | 显示全部楼层
keepalive 是这个值,具体情况具体分析,你可以自己测试出来什么时候,用多少效果是最好的。
回复

使用道具 举报

Nanu 发表于 2006-3-27 10:39:39 | 显示全部楼层
呵呵,不错哦!
keepalive 我一般喜欢off。(不过这个比较有争议……)

P.S. 补充我的几点优化:
1、编译Apache PHP MySQL时使用GCC参数传递对特定CPU进行优化;
2、如果网站小文件很多,可以考虑使用reiserfs磁盘系统,提升读写性能;
3、如不需要 .htaccess ,则将 <Files .htaccess> 设置为 None
回复

使用道具 举报

rendian 发表于 2006-3-27 17:05:43 | 显示全部楼层
支持。。。高手出招,果然厉害!
回复

使用道具 举报

domin 发表于 2006-3-27 18:42:52 | 显示全部楼层
apache的keepalive 对人多的论坛用off好
没必要保留log的话可以将log位置指到/dev/null 速度可以稍微提高一点
回复

使用道具 举报

 楼主| cqfanli 发表于 2006-4-7 09:36:50 | 显示全部楼层
就想到这些东东,欢迎大家补充~~

梦飞
http://onlinecq.com
2006/3/25

改正一下发表日期.原贴写错了...
回复

使用道具 举报

明镜 发表于 2006-4-7 11:20:20 | 显示全部楼层
原帖由 domin 于 2006-3-27 18:42 发表
apache的keepalive 对人多的论坛用off好
没必要保留log的话可以将log位置指到/dev/null 速度可以稍微提高一点


直接去掉log模块和相关配置语句,你这样做其实还在生成log,只不过自动丢弃不写磁盘而已
回复

使用道具 举报

domin 发表于 2006-4-7 15:14:21 | 显示全部楼层
原帖由 明镜 于 2006-4-7 11:20 发表


直接去掉log模块和相关配置语句,你这样做其实还在生成log,只不过自动丢弃不写磁盘而已


我听高手说这样做才行, 光去掉了语句是不好的. 具体原因我也不清楚, 请高手出来解释一下吧
回复

使用道具 举报

明镜 发表于 2006-4-7 20:57:24 | 显示全部楼层
我猜高手指的是error_log,因为单单删除语句是屏蔽不掉的,所以就指向/dev/null了事
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-11-16 19:49 , Processed in 0.107150 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表