LoaRunner性能测试系统学习教程:Apache调优
上期我们讲到
LoaRunner性能测试Apachetop监控 , 这期我们讲LoaRunner性能测试Apache调优 。
UApache调优Apache最近的版本是2.2版 , Apache2.2是一个多用途的web服务器 , 其设计在灵活性、可移植性和性能中求得平衡 。 虽然没有在设计上刻意追求性能指标 , 但是Apache2.2仍然在许多现实环境中拥有很高的性能 。 相比于Apache 1.3 , 2.2版本作了大量的优化来提升处理能力和可伸缩性 , 而且大多数的改进在默认状态下就可以生效 。 但是 , 在编译时和运行时 , 都有许多可以显著提高性能的选择 。 本章节主要阐述在安装Apache2.2时 , 服务器管理员可以改善性能的各种方法 。 关于Apache调优主要包括三个方面的内容:硬件与操作系统方面、运行时的配置和编译时的配置 。
硬件与操作系统方面影响web服务器性能的最大的因素是内存 , 一个web服务器应该尽量不使用交换机制 , 因为交换产生的滞后使用户总感觉“不够快” , 此时用户就可能去按“停止”和“刷新” , 从而给web服务器带来更大的负载 。 所以应该控制MaxClients的设置 , 以避免服务器产生太多的子进程而发生交换 , 先计算出每个Apache进程平均消耗的内存 , 然后再为其它进程留出足够多的内存 。
其他因素比较普通 , 装一个足够快的CPU , 一个足够快的网卡 , 几个足够快的硬盘 , 这里说的“足够快”是指能满足实际应用的需求 。
操作系统是很值得关注的又一个因素 , 已经被证实的很有用的经验有:
- 选择能够得到的最新最稳定的版本并打好补丁 。 现在许多操作系统厂商都提供了可以显著改善性能的TCP协议栈和线程库 。
- 如果操作系统支持sendfile()系统调用 , 则务必安装带有此功能的版本或补丁 。 在支持sendfile的系统中 , Apache2可以更快地发送静态内容而且占用较少的CPU时间 。
1)AllowOverride
AllowOverride两种设置All或None , 如果网站空间允许覆盖(通常是用.htaccess文件) , 则Apache会试图对文件名的每一个组成部分都打开.htaccess , 例如:
DocumentRoot/www/htdocs
AllowOverrideAll
如果请求“/index.html” , 则Apache会试图打开“/.htaccess”、“/www/.htaccess”、“/www/htdocs/.htaccess” 。 为了得到最佳性能 , 应当对文件系统中所有的地方都使用AllowOverrideNone设置 。
2)HostnameLookups和其它DNS
在Apache1.3以前的版本中 , HostnameLookups默认被设为On , 这样会带来延迟 , 因为对每一个请求都需要做一次DNS查询 。 在Apache2.2中 , 它被默认地设置为Off 。 如果需要日志文件提供主机名信息以生成分析报告 , 则可以使用日志后处理程序logresolve , 以完成DNS查询 , 而客户端无须等待 。
一般情况下应该是在其它的机器上 , 而不是在web服务器上执行后处理和其他日志统计操作 , 以免影响服务器的性能 。
如果你使用了任何“Allowfromdomain”或“Denyfromdomain”指令(也就是domain使用的是主机名而不是IP地址) , 则代价是要进行两次DNS查询(一次正向和一次反向 , 以确认没有作假) 。 所以 , 为了得到最高的性能 , 应该避免使用这些指令(不用域名而用IP地址也是可以的) 。
【LoaRunner性能测试系统学习教程:Apache调优】注意:可以把这些指令包含在
HostnameLookupsoff
HostnameLookupson
如果在某些CGI中偶尔需要DNS名称 , 则可以调用gethostbyname来解决 。
3)FollowSymLinks和SymLinksIfOwnerMatch
如果网站空间中没有使用OptionsFollowSymLinks , 或使用了OptionsSymLinksIfOwnerMatch , Apache就必须执行额外的系统调用以验证符号连接 。 文件名的每一个组成部分都需要一个额外的调用 。 例如 , 如果设置了:
DocumentRoot/www/htdocs
OptionsSymLinksIfOwnerMatch
在请求“/index.html”时 , Apache将对“/www”、“/www/htdocs”、“/www/htdocs/index.html”执行lstat()调用 , 而且lstat()的执行结果不被缓存 , 因此对每一个请求都要执行一次 , 如果确实需要验证符号连接的安全性 , 则可以这样:
DocumentRoot/www/htdocs
- 巅峰|realme巅峰之作:120Hz+陶瓷机身+5000mAh 做到了颜值与性能并存
- 华为|骁龙870和骁龙855区别都是7nm芯片吗 性能对比评测
- 器件|苏州纳米所等在高性能柔性储能器件研究中取得进展
- 超强|RedmiNote9系列发布!天玑800U赋予超强5G性能
- iPhoneX|iPhone12和iPhoneX性能对决:差距比想象的大太多
- Redmi|Redmi Note 9系列发布,搭载天玑800U具备超强5G性能
- 首发|华为或首发联发科6纳米+A78新U:性能超强不输麒麟9000
- 华为|安兔兔10月安卓性能榜:华为Mate40 Pro第一 麒麟9000碾压骁龙865
- 骁龙865|5G手机中的性能怪兽,256+120W闪充,比iPhone12值得买
- 网间|新外观专利陆续曝光 徐起和网间透露realme极致性能新机将至