免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1819 | 回复: 0
打印 上一主题 下一主题

web性能优化(一)弱请求处理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-05-28 16:09 |只看该作者 |倒序浏览
本帖最后由 dynamiclu 于 2011-05-28 16:13 编辑

[文章作者:狂奔的鹿(陆松林) 本文版本:v1.0  转载请注明原文链接:http://www.cnblogs.com/dynamiclu/]
    从开发人员到系统工程师、运维工程师以及架构师,经常会收到用户或需求方的反映,说我们网站打开地很慢,甚至出现了502等。这个问题原因较多,处理方式也较多。我要分享的是一个弱请求处理的优化方式。
   弱请求在这里是指那些响应较慢、耗时较长的HTTP请求,是笔者临时命名的。有经验的工程师都知道,我们要分析系统性能问题时,只需分析这个系统的请求处理容量和单个请求的平均响应时间。有前辈分享的2/8原则,提到我们的系统有20%左右响应较慢的请求占用了超过20%以上的资源。这里要说的就是对这些请求响应时间的处理方式。
   如何获取系统的单个请求响应时间?
     客户端层面情况较复杂,存在很大的地域差别,可以用httpwatch或者压力测试软件进行区别,也可以依靠部署在全国各地的性能监控平台获取信息。
     服务器端的方式有:1.配置nginx,apache日志格式  2.在工程代码里加filter,进行记录。建议使用第一种方式。
  1.  修改nginx配置文件     
  2. vi /usr/local/nginx/conf/nginx.conf     
  3. 找到log_format,在最后添加request_time项,如下     
  4.   log_format main '$remote_addr - $remote_user [$time_local] '    
  5.   '"$request" $status $bytes_sent '    
  6.   '"$http_referer" "$http_user_agent" '    
  7.   '"$gzip_ratio"'    
  8.   '"$request_time"';
  9.   保存退出.     
  10. kill -HUP PID(nginx的PID)
复制代码
提醒:日志格式修改后,注意是否有相关的日志分析程序需要进行相应地修改。
  打开的nginx时志文件
  1. tail -fn100 /usr/local/nginx/logs/access.log
复制代码
此时发现在最后部分多了一项数据,如下图:

  红圈表示请求/msg/replyList/msg/1/1.html的响应时间为0.053秒
太好了,服务器请求时间记录下来了。
apache也可以作类似设置,有兴趣的朋友可以在google里搜索一下就知道了。
然后,让我们的系统跑动若干时间段。
我们再取出日志,执行:
  1. cat access.log |awk  '($7~/\.html/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100
  2. #意思是列出到客户端最耗时的前100个请求的html页面, (可修改,为jsp,php)分别显示响应时间  IP来源  请求发生的时间   请求页
复制代码
如下图

  说明请求/msg/msgup.html较慢,超过了6秒,太消耗资源了。
  经常分析日志,我们会得到一系列这样的请求页面。
  找到了妨碍我们系统性能打开较慢的问题页面,根据前辈提到的2/8原则,我们可以对这些请求进行处理:
  方法一:
       分析这个请求对应的程序是不是有很多for循环,是不是直接读库,缓存策略是否还可以优化等等修改程序就OK。
  方法二:
     利用nginx的正则匹配转发,我们把这些弱请求统计转到其它服务器处理,起到分流的作用。

  实施上述策略之后,我们发现系统负载减轻了,502更少了,页面打开的速度更快了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP