1 内存
适当选用适合大小的内存,保证谷峰负载时,有足够的内存使用
2 使用ab测试apache性能
- ab -n 1000 -c 10 http://www.test.com
使用ab的缺点:不能更真实的模仿用户的操作。
3 调节保持连接的设定
- KeepAlive On #在单一连接时进行多个请求
- MaxKeepAliveRequests 200 #单一连接时间可以允许多少个保持连接的请求
- KeepAliveTimeout 15 #在没有接受其他请求时,会持续开启特定连接的时间
调整合适的各项值
4 取得网站活动快照
启用server-status处理器来取得子进程在运行的快照
- <Location /server-status>
- SetHandler server-status
- </Location>
- ExtendedStatus On
5 避免DNS查询
以DNS来查询客户端地址
- HostNameLookups Off
6 最佳化符号链接
主要考虑安全防护:永远不要允许遵循符号链接
主要考虑性能:永远使用Options FollowSysLinks且绝不使用Options SysLinkIfOwnerMatch
7 尽量降低.htaccess文件对性能的影响
只在必要的目录中启用AllowOverride,并告知Apache不要浪费时间在其他的位置上查找.htaccess文件
- AllowOverride None
然后以<Directory>区块启用必要的.htaccess文件
8 最佳化进程的产生
MinSpareServers MaxSpareServers 控制服务器池的大小,以便有子进程等待服务引入的请求
(永远不要发生,当请求送至网站却没有闲置的服务器进程在等待处理请求的情形)
9 调节线程的产生
- <IfModule mpm_winnt.c>
- ThreadsPerChild 1000
- MaxRequestsPerChild 8000
- Win32DisableAcceptEx
- </IfModule>
10 将经常查看的文件存入高速缓存区
[使用MMapFile]----将文件内容存入内存的高速缓冲区
- MMapFile /www/xxx/index.html
- MMapFile /www/xxx/otherpage.html
[使用CacheFile]----将文件句柄存入内存的高速缓冲区,稍微降低系统性能,但是占用内存较少
- CacheFile /www/xxx/index.html
- CacheFile /www/xxx/otherpage.html
参考资料:《apache cookbook》