五、自动监控ADSL并重拔号的shell脚本
2010-10-12 16:55
281 查看
Apache Rewrite对apache性能影响的测试
[ Apache rewrite规则 ]
Apache中这个rewrite规则能把http://localhost/heiyeluren/readme.txt 重写到 D:/kiss/wwwroot/h/e/i/heiyeluren/readme.txt
修改httpd.conf,增加:
RewriteEngineOn
RewriteRule^/([0-9a-z])([0-9a-z])([0-9a-z])([0-9a-z]+)/(.*)/$1/$2/$3/$1$2$3$4/$5[L]
[ 性能测试 ]
使用 http_load 来进行页面访问测试 (下载http_load: http://www.acme.com/software/http_load/)
命令格式:http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件
准备URL文件:tst.list,文件格式是每行一个URL,URL最好超过50个测试效果比较好,另外,测试结果中我们主要是关心 fetches/sec 这个选项,这个我们称之为QPS,大致就是一台服务器每秒能够相应的查询次数,下面看到的测试结果中的 xxxx fetches/sec 就是每秒能够相应的查询次数,用这个来衡量性能。
PS:http_load 比 apache自带的 ab 要强不少,准确率也要高。
有rewrite,访问rewrite之后的URL
http_load -p 30 -s 60 tst.list
^[c137829 fetches, 26 max parallel, 275658 bytes, in 60.0003 seconds
2 mean bytes/connection
2297.14 fetches/sec, 4594.28 bytes/sec
msecs/connect: 0.0604275 mean, 11.447 max, 0.021 min
msecs/first-response: 2.70699 mean, 1190.06 max, 0.305 min
有rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
148477fetches,30maxparallel,296954bytes,in60seconds
2meanbytes/connection
2474.62fetches/sec,4949.23bytes/sec
msecs/connect:0.058889mean,8.447max,0.02min
msecs/first-response:2.52814mean,1324.63max,0.298min
无rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
151920fetches,29maxparallel,303840bytes,in60seconds
2meanbytes/connection
2532fetches/sec,5064bytes/sec
msecs/connect:0.0608508mean,153.375max,0.02min
msecs/first-response:2.35597mean,1091.58max,0.259min
有rewrite,但通过proxy实现
http_load-p30-s60tst.list
58586fetches,30maxparallel,117172bytes,in60.001seconds
2meanbytes/connection
976.417fetches/sec,1952.83bytes/sec
msecs/connect:0.0769494mean,100.978max,0.022min
msecs/first-response:8.93129mean,1190.54max,0.871min
[ 结论 ]
apache的rewrite会产生微小的cpu开销,导致一些性能损失,但这个损失并不特别明显,所以不要害怕rewrite,当然规则太多性能可能也会有影响,所以尽量不要太多规则
proxy很慢,且存在安全隐患(SSL是不支持proxy的),带[P]的rewriterule就是proxy。因此,除非万不得已(比如客户端js跨域),应尽量避免使用proxy。
proxy不是apache的专长,如果为了反向代理加速,squid通常是一个更合适的选择。
PS:最后感谢同事健祥同学提供测试结果和相应说明,我只是进行了一些文字优化。:-)
[ Apache rewrite规则 ]
Apache中这个rewrite规则能把http://localhost/heiyeluren/readme.txt 重写到 D:/kiss/wwwroot/h/e/i/heiyeluren/readme.txt
修改httpd.conf,增加:
RewriteEngineOn
RewriteRule^/([0-9a-z])([0-9a-z])([0-9a-z])([0-9a-z]+)/(.*)/$1/$2/$3/$1$2$3$4/$5[L]
[ 性能测试 ]
使用 http_load 来进行页面访问测试 (下载http_load: http://www.acme.com/software/http_load/)
命令格式:http_load -p 并发访问进程数 -s 访问时间 需要访问的URL文件
准备URL文件:tst.list,文件格式是每行一个URL,URL最好超过50个测试效果比较好,另外,测试结果中我们主要是关心 fetches/sec 这个选项,这个我们称之为QPS,大致就是一台服务器每秒能够相应的查询次数,下面看到的测试结果中的 xxxx fetches/sec 就是每秒能够相应的查询次数,用这个来衡量性能。
PS:http_load 比 apache自带的 ab 要强不少,准确率也要高。
有rewrite,访问rewrite之后的URL
http_load -p 30 -s 60 tst.list
^[c137829 fetches, 26 max parallel, 275658 bytes, in 60.0003 seconds
2 mean bytes/connection
2297.14 fetches/sec, 4594.28 bytes/sec
msecs/connect: 0.0604275 mean, 11.447 max, 0.021 min
msecs/first-response: 2.70699 mean, 1190.06 max, 0.305 min
有rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
148477fetches,30maxparallel,296954bytes,in60seconds
2meanbytes/connection
2474.62fetches/sec,4949.23bytes/sec
msecs/connect:0.058889mean,8.447max,0.02min
msecs/first-response:2.52814mean,1324.63max,0.298min
无rewrite,直接访问rewrite之前的URL
http_load-p30-s60tst2.list
151920fetches,29maxparallel,303840bytes,in60seconds
2meanbytes/connection
2532fetches/sec,5064bytes/sec
msecs/connect:0.0608508mean,153.375max,0.02min
msecs/first-response:2.35597mean,1091.58max,0.259min
有rewrite,但通过proxy实现
http_load-p30-s60tst.list
58586fetches,30maxparallel,117172bytes,in60.001seconds
2meanbytes/connection
976.417fetches/sec,1952.83bytes/sec
msecs/connect:0.0769494mean,100.978max,0.022min
msecs/first-response:8.93129mean,1190.54max,0.871min
[ 结论 ]
apache的rewrite会产生微小的cpu开销,导致一些性能损失,但这个损失并不特别明显,所以不要害怕rewrite,当然规则太多性能可能也会有影响,所以尽量不要太多规则
proxy很慢,且存在安全隐患(SSL是不支持proxy的),带[P]的rewriterule就是proxy。因此,除非万不得已(比如客户端js跨域),应尽量避免使用proxy。
proxy不是apache的专长,如果为了反向代理加速,squid通常是一个更合适的选择。
PS:最后感谢同事健祥同学提供测试结果和相应说明,我只是进行了一些文字优化。:-)
相关文章推荐
- shell自动监控重启tomcat脚本
- shell脚本:自动内存监控及日志备份
- Linux服务器监控SHELL脚本(自动发139邮箱)
- 用shell脚本监控linux系统 自动发送邮件
- 自动监控主从MySQL同步的SHELL脚本
- Lvs别样的自动部署监控shell脚本
- 自动监控apache服务状态并重启的shell脚本
- shell自动监控重启Tomcat脚本
- shell自动监控重启tomcat脚本
- 用shell脚本实现监控程序自动重启
- 自动监控主从MySQL同步的SHELL脚本 推荐
- 自动监控进程并启动的shell脚本
- SHELL脚本实现服务宕机监控自动重启
- 坚持#第272天~zabbix监控(安装、配置、shell脚本自动实现)
- Linux下使用shell脚本自动监控重启tomcat
- 一个监控Squid运行进程数并自动重启的简洁Shell脚本分享
- Linux服务器监控SHELL脚本(自动发邮件)(转)
- shell自动监控重启Tomcat脚本
- shell自动监控重启Tomcat脚本,每一分钟检查