荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: cici.bbs@bbs.uestc.edu.cn (cici), 信区: Database
标  题: 对Apache,MySQL,PHP发掘性能
发信站: 一网深情 (Mon Sep 30 14:32:49 2002)
转信站: SZUBBS!news2.happynet.org!news.happynet.org!UESTC

编译
修改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 -mpentium
pro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti"
------------------------------------------------------------------------------
--

例如

代码:-------------------------------------------------------------------------
-------
CFLAGS="-O6 -mpentiumpro -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O6 -mpentium
pro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./con
figure ..............
------------------------------------------------------------------------------
--


注意,这里优化的是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 -mpentium
pro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./con
figure --prefix=/usr/local --enable-assembler --with-mysqld-ldflags=-all-stati
c --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 -mpentium
pro -fomit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./con
figure --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等

mmap的效果明显

--
向来痴 人生自是有情痴

从此醉 此恨不关风与月




※ 来源:.一网深情 http://bbs.uestc.edu.cn [FROM: 211.83.96.192]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店