Chinaunix首页 | 论坛 | 博客
  • 博客访问: 588264
  • 博文数量: 187
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 2990
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-18 17:40
文章分类

全部博文(187)

文章存档

2010年(1)

2009年(23)

2008年(163)

我的朋友

分类: LINUX

2008-09-27 14:38:52

在 httpd.conf 中设置 \"HostNameLookups off\" 能避免针对每个访问者的 DNS 域名的反向查询。 

对于繁忙的网站,在 httpd.conf 中设置 \"MaxClients 250\" 或者更高。这项设置让更多的 httpd 进程同时响应请求,并避免了处理器排队的情况发生。 

缺保您的 Web 页面和 CGI 页面采用了浏览器缓冲技术。例如采用 mod_gzip 加速 Zope 和 Apache保持您的 Apache 苗条,编译那些仅仅需要的模块,在编译之前,修改 src/Configuration 文件,在那些不需要的模块之前用 # 号注释掉。 

如果不需要流量日志,那么把 httpd.conf 中的 TransferLog 指向到 /dev/null/除非你确定使用 .htaccess 文件来控制一些目录的权限,否则设置 \"AllowOverride None\" ,这样就免去 Apache 在每个目录搜索 .htaccess 文件的劳役之苦。 

不要让不需要的后台进程运行。 

千万不要把页面或者日志文件写到网络磁盘上,例如 NFS。 

不要让 Apache (httpd) 运行于 inetd 模式。 

不要让 X Windows 运行在你的 Web 服务器上,用 Ctrl-Alt-Backspace 关闭 X 。 

避免使用 SSI tag。在 CGI 脚本中: 

文件 I/O:打开的文件数目越少越好。 

Shell 命令:采用全路径来调用 shell 命令。 

如果你的网站主要以 CGI 来驱动,那么请使用 mod_perl。 

在你的 Web 页面目录中,不要让文件数超过 1000 个,文件越多花费在定位上的时间也越多。 

在 Web 服务器上的图片越少越好,保证每个图片都经由图片压缩器运行。 

采用另外一台服务器处理图片文件。 


编译 
修改src/include/httpd.h 
代码:-------------------------------------------------------------------------------- 
#ifndef HARD_SERVER_LIMIT 
#ifdef WIN32 
#define HARD_SERVER_LIMIT 1024 
#elif defined(NETWARE) 
#define HARD_SERVER_LIMIT 2048 
#else 
#define HARD_SERVER_LIMIT 1024 
#endif 
#endif 
-------------------------------------------------------------------------------- 
在configure前添加代码:-------------------------------------------------------------------------------- 
CFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer\" CXX=gcc CXXFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" 
--------------------------------------------------------------------------------例如代码:-------------------------------------------------------------------------------- 
CFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer\" CXX=gcc CXXFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" ./configure .............. 
-------------------------------------------------------------------------------- 
注意,这里优化的是intel pentium pro以上处理器(i686) 
如果你是i386,使用-m386 
如果你是i486,使用-m486 
如果你是i586,使用-mpentium 
如果你是i686,使用-mpentiumpro 
如果你是AMD CPU,使用-mcpu=k6 
自行修改选项使用gmake代替make 
以上为编译的优化 
设置上的优化 
httpd.conf代码:-------------------------------------------------------------------------------- 
Timeout 120 
KeepAlive On 
MaxKeepAliveRequests 100 
KeepAliveTimeout 5 
#超时及保持连接设置 
MinSpareServers 5 
MaxSpareServers 15 
StartServers 8 
#进程启动控制,过多不好,而且导致启动慢 
MaxClients 512 
#最大连接512,根据实际调整 
MaxRequestsPerChild 1024 
#每个进程1024只响应1024次,每响应1024就自动终止本身,并且启用新的进程 
#这样可以避免一个进程占用的资源无法回收 
HostnameLookups Off 
#关掉连接进来的主机的名字lookup 
--------------------------------------------------------------------------------减少不必要的modules,去掉不用的loadmodule,addmodule 
另外,如果你是公网的一台服务器,而且对所有人开放允许连接,那么可以注释了httpd.conf里面所有order,allow,deny语句使用mod_perl代替perl,使用php的apache module代替php-cgi 
编译 
代码:-------------------------------------------------------------------------------- 
CFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer\" CXX=gcc CXXFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" ./configure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --without-innodb 
--------------------------------------------------------------------------------注意,这里优化的是intel pentium pro以上处理器(i686) 
如果你是i386,使用-m386 
如果你是i486,使用-m486 
如果你是i586,使用-mpentium 
如果你是i686,使用-mpentiumpro 
如果你是AMD CPU,使用-mcpu=k6 
自行修改选项 
如果你需要用到innodb表,请去掉最后的 --without-innodb 
使用gmake代替make使用MySQL-MAX代替MySQL 
以上为编译的优化MySQL的配置 
my.cnf 
my.cnf,在mysql的安装目录support-files下有几个范例,选一个适合自己的 
另外还要修改一下my.cnf代码:-------------------------------------------------------------------------------- 
skip-locking 
#log-bin 
#去掉log 
server-id = 1 
skip-innodb 
#去掉innodb支持 
set-variable = thread_concurrency=4 
#设置为你的cpu数目x2,例如,只有一个cpu,那么thread_concurrency=2 
#有一个cpu,那么thread_concurrency=4 
--------------------------------------------------------------------------------将你的表转换为MYISAM形式 
MySQL就这样了,是没东西说的 
另外,如果你不怕是用测试版,可以用mysql4来代替mysql3,性能会有提升的 
只是mysql4还是Alpha版本 
编译 
代码:-------------------------------------------------------------------------------- 
CFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer\" CXX=gcc CXXFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" ./configure --with-mysql --with-apxs=/apache1/bin/apxs --enable-trans-sid --disable-debug --enable-inline-optimization --enable-mbstring 
--------------------------------------------------------------------------------注意,这里优化的是intel pentium pro以上处理器(i686) 
如果你是i386,使用-m386 
如果你是i486,使用-m486 
如果你是i586,使用-mpentium 
如果你是i686,使用-mpentiumpro 
如果你是AMD CPU,使用-mcpu=k6 
自行修改选项 
使用gmake代替make优化 
添加zend optimizer 
添加zend accelerator 
使用zend encoder unlimited来编译php源代码 
mmap_static_module:mod_mmap_static.c 
mod_mmap_static.so 
mmap_static_module的作用是将部分 静态文件 存放在内核缓存 
不过,要小心配置mmap,因为这个会导致系统不稳定,甚至当机。另外,似乎只有xNIX主机可以使用这个。首先必须loadmodule mod_mmap_static.so或者已经编译进httpd 
确认module装载了后 
httpd.conf 设置语法(建议放在所有addmodule的最后,如果你没用到addmodule,那么就放在所有loadmodule后面)MMapFile 文件1 文件2 .......由于必须是静态文件,那么适合放进mmap的文件是.htm .html .txt .js还有就是图片文件,除了这些,配置文件conf,.htaccess .htpasswd之类也可以需要注意的是,mmap提供文件的缓冲数有限,大概是1000个,并且单个文件的不要太大,所有动态的文件不要放进mmap,例如.php .cgi .pl等 

maxclient默认的最大值为256,我在solaris sparc 9的机器上,如果没有重新编译,怎么都超不过这个值,重新编译的方法: 
/usr/local/src/httpd-2.0.48/server/mpm/prefork/prefork.c 
#define DEFAULT_SERVER_LIMIT 256 
我这个值调大,我现在调整的是2000 

然后安装: 
./configure --prefix=/usr/local/apache2 --enable-so 
make 
make install 

这样最大可以达到2000 


我编译MySQL的参数 
./configure CFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer\" CXX=gcc CXXFLAGS=\"-O6 -mpentiumpro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti\" --prefix=/server/mysql --enable-assembler --with-mysqld-ldflags=-all-static --disable-shared --without-innodb --without-docs --with-low-memory --with-mysqld-user=mysql --with-charset=gbk 
阅读(878) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~