网站压力测试

来源:互联网 发布:2016年淘宝9月大促时间 编辑:程序博客网 时间:2024/05/21 20:23
1.简述:
大多数程序都是在浏览器中显示给用户,它们的显示使用了js、css、flash、img等资源。


我也知道一个用户请求的过程:
  用户  路由器  网关  域名服务器   web服务器  web应用程序


从反响的角度来看一旦用户的请求达到web服务器之后,web服务器便通过获取并格式化用户请求的数据来准备响应。然后web服务器就会把数据打包成多个数据包,并以相反的孙兴沿着用户请求的相同路径将这些数据包发给用户,最后在浏览器中呈现。


这些步骤中每一步都有可能使最终用户的网页执行速度减慢。我们今天讨论前端数据的基准测试.




2.apache Benchmark.


安装:
   下载apache安装后


使用:
  进入apache安装目录bin/
  


语法:  
   ab  -参数列表 参数值  请求地址


ab   -n  100  -c 10 -t  30   http://example.com/


表示:模拟了一个并发测试,同时有10个并发请求,直到并发数达到100个为止,时间为30秒
参数说明:
    -n  需要模拟的请求总数
    -c  一次模拟的请求数,默认为1
    -t  在指定的时间内请求






结果解释:
  Benchmarking 127.0.0.1 (be patient).....done    #开始




Server Software:        Apache/2.2.21   #服务器版本
Server Hostname:        127.0.0.1       #服务器域名
Server Port:            80              #服务器端口


Document Path:          /ylqy.com/      #访问文件地址
Document Length:        31785 bytes     #访问文件的总大小


Concurrency Level:      1               #并发请求的总数
Time taken for tests:   0.188 seconds   #运行所有并发请求所花费的总时间
Complete requests:      2               #已完成
Failed requests:        0               #模拟请求中失败的次数
Write errors:           0               #写入数据是失败的次数
Total transferred:      64360 bytes     #整个模拟的响应中传输的总数居的大小
HTML transferred:       63570 bytes     #整个模拟传输中的html内容的总数据大小
Requests per second:    10.67 [#/sec] (mean)    #每秒支持的请求总数
Time per request:       93.750 [ms] (mean)      #满足一个请求所花的时间毫秒数
Time per request:       93.750 [ms] (mean, across all concurrent requests  #满足所有请求所花的时间毫秒数
Transfer rate:          335.21 [Kbytes/sec] received  #每秒收到的字节数


Connection Times (ms)   #分析
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:    78   86  11.0     94      94
Waiting:       63   70  11.0     78      78
Total:         78   86  11.0     94      94 


注意: 下面几个参数通常是我们的参考值
HTML transferred:       63570 bytes     #整个模拟传输中的html内容的总数据大小
Requests per second:    10.67 [#/sec] (mean)    #每秒支持的请求总数
Time per request:       93.750 [ms] (mean)      #满足一个请求所花的时间秒数
Total 在指定并发数请求下的指定流量负载,最慢响应是 94毫秒  最快78毫秒  毫秒转换秒(毫秒/1000)


3.影响测试数字


  1-服务器部署位置
  2-网络带宽
  3-请求响应的数据包大小
  4-代码质量
  5-浏览器行为
  6-web服务器配置(包括硬件)




4.yahoo前端优化34条规则:


http://www.itokit.com/2012/0704/74572.html


http://blog.csdn.net/sycflash/article/details/7324860




5.提供客户端的页面下载能力与渲染能力.
   5.1 安装friebug
         下载friebug: http://getfirebug.com


      安装:
          打开你的firefox的浏览器: 工具-->附加组件-->从文件附件安装组件-->选择文件安装
         工具-->web开发者 如果安装成功就能看到了


    应用:  打开friebug 看到它有很多的选项卡


      控制台: 可以显示当前网页的所有js日志信息、警告、错误、分析当前网页的js


      网络: 显示web服务器返回响应后浏览器发起的网络调用的详细信息它包含了如下几个信息:
         url: 当前网页获取资源数据所需要的所有http请求数
         状态: http响应的代码
        域:  获取资源的域名
      大小: 响应数据的总大小
      时间线: 彩色的进度条,它表示浏览器何时请求了资源  
                紫色: 浏览器正在等待资源
                灰色: 浏览器正在接受资源
                红色: 浏览器正在发送资源
               绿色: 浏览器正在连接
              蓝色: DNS查找


网站性能工具Yslow的使用方法
      Yslow是雅虎开发的基于网页性能分析浏览器插件.


     YSlow (V2)包含了所有22个测试的规则,YSlow (V1)包含原始13规则,小网站或博客-这个规则集包含14个规则,适用于小型网站或博客,建议对号入座。
 Yahoo的军规条例:
   谨记:80%-90%的终端响应时间是花费在下载页面中的图片,样式表,脚本,flash等
1. 减少HTTP请求次数 
合并图片、CSS、JS,改进首次访问用户等待时间。 
2. 使用CDN 
就近缓存==>智能路由==>负载均衡==>WSA全站动态加速 
3. 避免空的src和href 
当link标签的href属性为空、script标签的src属性为空的时候,浏览器渲染的时候会把当前页面的URL作为它们的属性值,从而把页面的内容加载进来作为它们的值。测试 
4. 为文件头指定Expires 
使内容具有缓存性。避免了接下来的页面访问中不必要的HTTP请求。 
5. 使用gzip压缩内容 
压缩任何一个文本类型的响应,包括XML和JSON,都是值得的。旧文章 
6. 把CSS放到顶部 
7. 把JS放到底部 
防止js加载对之后资源造成阻塞。 
8. 避免使用CSS表达式 
9. 将CSS和JS放到外部文件中 
目的是缓存,但有时候为了减少请求,也会直接写到页面里,需根据PV和IP的比例权衡。 
10. 权衡DNS查找次数 
减少主机名可以节省响应时间。但同时,需要注意,减少主机会减少页面中并行下载的数量。 
IE浏览器在同一时刻只能从同一域名下载两个文件。当在一个页面显示多张图片时,IE 用户的图片下载速度就会受到影响。所以新浪会搞N个二级域名来放图片。 
11. 精简CSS和JS 
12. 避免跳转 
同域:注意避免反斜杠 “/” 的跳转; 
跨域:使用Alias或者mod_rewirte建立CNAME(保存域名与域名之间关系的DNS记录) 
13. 删除重复的JS和CSS 
重复调用脚本,除了增加额外的HTTP请求外,多次运算也会浪费时间。在IE和Firefox中不管脚本是否可缓存,它们都存在重复运算JavaScript的问题。 
14. 配置ETags 
它用来判断浏览器缓存里的元素是否和原来服务器上的一致。比last-modified date更具有弹性,例如某个文件在1秒内修改了10次,Etag可以综合Inode(文件的索引节点(inode)数),MTime(修改时间)和Size来精准的进行判断,避开UNIX记录MTime只能精确到秒的问题。 服务器集群使用,可取后两个参数。使用ETags减少Web应用带宽和负载 
15. 可缓存的AJAX 
“异步”并不意味着“即时”:Ajax并不能保证用户不会在等待异步的JavaScript和XML响应上花费时间。 
16. 使用GET来完成AJAX请求 
当使用XMLHttpRequest时,浏览器中的POST方法是一个“两步走”的过程:首先发送文件头,然后才发送数据。因此使用GET获取数据时更加有意义。 
17. 减少DOM元素数量 
是否存在一个是更贴切的标签可以使用?人生不仅仅是DIV+CSS 
18. 避免404 
有些站点把404错误响应页面改为“你是不是要找***”,这虽然改进了用户体验但是同样也会浪费服务器资源(如数据库等)。最糟糕的情况是指向外部 JavaScript的链接出现问题并返回404代码。首先,这种加载会破坏并行加载;其次浏览器会把试图在返回的404响应内容中找到可能有用的部分当作JavaScript代码来执行。 
19. 减少Cookie的大小 
20. 使用无cookie的域 
比如图片 CSS 等,Yahoo! 的静态文件都在 yimg.com 上,客户端请求静态文件的时候,减少了 Cookie 的反复传输对主域名 (yahoo.com) 的影响。 
21. 不要使用滤镜 
png24的在IE6半透明那种东西,别乱使,淡定的切成PNG8+jpg 
22. 不要在HTML中缩放图片 
23. 缩小favicon.ico并缓存






 Grade(等级视图)—Yslow的第二个选项卡
         Yslow给出的网站性能评分,从F~A,A是最好的


Components(组件视图)—Yslow的第三个选项卡
        通过Components考验查看网页各个元素占用的空间大小


Statistics(统计信息视图)—Yslow的第四个选项卡
    左侧图表显示是页面元素在空缓存的加载情况,右侧为页面元素使用缓存后的页面加载情况。而通过使用缓存后我们可以看到效果图片基本靠缓存,而网页的总大小压缩到43.2K。


Tools(辅助工具)—Yslow的第五个选项卡:
    JSLint是一个强大的工具,它可以检验HTML代码以及内联的Javascript代码,通过JSLint发现了google analytics上的一个js错误
ALL JS:查看你这个网页上一共引用了多少JS。
All JS Beautified:把所有JS放在打开的页面中,利用站长统一检查(我感觉作用不大)。
All JS Minified:同上,但它显示的是压缩过的js代码,如果你要JS优化,它已经给你优化好了,来过来直接用All CSS:显示你网页所有CSS文件。
YUI CSS Compressor:显示网页压缩后的CSS文件,也是拿过来可以直接用的。
All Smush.it:图片在线优化网站,点击它后会自动跳到smushit网站上给你自动优化CSS图片,该网站提供了优化前与优化后的对比,点击直接下载优化后的图片,在覆盖到自己网站上就可以了,强烈推荐
Printable View:这个是打印用的,部门开会、前端设计师讨论、向老板汇报时估计用的上。


page speed:
   page speed 也是用于firefox/firebug的插件,我们这边是有google浏览器来测试 。与 Yslow一样,它也为网页运用技术的水平进行打分,不同的是page speed 提供的信息包括对那些文件进行分析、如何优化、在网页的什么地方进行优化以及衡量优化可以提供多少性能指标.
  下载安装:
https://developers.google.com/speed/docs/insights/using_firefox#Installing
0 0
原创粉丝点击