Loading... <hr /> <h1 style="border: none;padding: 0px 0px 1px"><strong><span style="font-family:宋体">服务器详细配置</span></strong></h1> <table cellspacing="0" cellpadding="0"> <tbody> <tr class="firstRow"> <td width="284" valign="top" style="border: none;padding: 0px 7px;background: white"> <p><strong><span style="font-family: Cambria, serif">Project</span></strong></p> </td> <td width="284" valign="top"> <p><strong><span style="font-family: Cambria, serif">message</span></strong></p> </td> </tr> <tr> <td width="284" valign="top"> <p><strong><span style="font-family: Cambria, serif">System info</span></strong></p> </td> <td width="284" valign="top"> <p><span style="font-family: Cambria, serif">LSB Version: :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch</span></p> <p><span style="font-family: Cambria, serif">Distributor ID: CentOS</span></p> <p><span style="font-family: Cambria, serif">Description: CentOS release 6.6 (Final)</span></p> <p><span style="font-family: Cambria, serif">Release: 6.6</span></p> <p><span style="font-family: Cambria, serif">Codename: Final</span></p> </td> </tr> <tr> <td width="284" valign="top"> <p><strong><span style="font-family: Cambria, serif">Harddriver</span></strong></p> </td> <td width="284" valign="top"> <p><span style="font-family: Cambria, serif">2core4GB</span></p> </td> </tr> <tr> <td width="284" valign="top"> <p><strong><span style="font-family: Cambria, serif">software</span></strong></p> </td> <td width="284" valign="top"> <p><span style="font-family: Cambria, serif">nginx 1.6.2</span></p> <p><span style="font-family: Cambria, serif">mysql 5.5</span></p> <p><span style="font-family: Cambria, serif">PHP 5.4.36</span></p> </td> </tr> <tr> <td width="284" valign="top"> <p><strong><span style="font-family: Cambria, serif">Core set</span></strong></p> </td> <td width="284" valign="top"> <p><span style="font-family: Cambria, serif">ulimit -a</span></p> <p><span style="font-family: Cambria, serif">core file size (blocks, -c) 0</span></p> <p><span style="font-family: Cambria, serif">data seg size (kbytes, -d) unlimited</span></p> <p><span style="font-family: Cambria, serif">scheduling priority (-e) 0</span></p> <p><span style="font-family: Cambria, serif">file size (blocks, -f) unlimited</span></p> <p><span style="font-family: Cambria, serif">pending signals (-i) 30459</span></p> <p><span style="font-family: Cambria, serif">max locked memory (kbytes, -l) 64</span></p> <p><span style="font-family: Cambria, serif">max memory size (kbytes, -m) unlimited</span></p> <p><span style="font-family: Cambria, serif">open files (-n) 65535</span></p> <p><span style="font-family: Cambria, serif">pipe size (512 bytes, -p) 8</span></p> <p><span style="font-family: Cambria, serif">POSIX message queues (bytes, -q) 819200</span></p> <p><span style="font-family: Cambria, serif">real-time priority (-r) 0</span></p> <p><span style="font-family: Cambria, serif">stack size (kbytes, -s) 10240</span></p> <p><span style="font-family: Cambria, serif">cpu time (seconds, -t) unlimited</span></p> <p><span style="font-family: Cambria, serif">max user processes (-u) 1024</span></p> <p><span style="font-family: Cambria, serif">virtual memory (kbytes, -v) unlimited</span></p> <p><span style="font-family: Cambria, serif">file locks (-x) unlimited</span></p> </td> </tr> </tbody> </table> <p></p> <h1 style="border: none;padding: 0px 0px 1px"><strong><span style="font-family:宋体">标准的性能曲线</span></strong></h1> <hr /> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">什么样的曲线才是健康的呢?看看下面的几幅图.</span></p> <h2 style="border: none;padding: 0px 0px 1px"><strong>“<span style="font-family:宋体">乳状图</span>”</strong></h2> <hr /> <p style="text-indent:28px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">这幅图中不管是http每秒的请求数,还是服务器的请求的命中率都呈现了波浪状.这是非常不健康的情况.导致的原因也可能是多方多面.即可能是web服务器自身性能的问题,也可能是被压测机自身的问题,除此外,网络诱因,网卡流量,压测软件内存原因都可能导致这样的问题出现</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160119-73.png" title="1429196407669277.png" alt="1.png" /></p> <h2 style="border: none;padding: 0px 0px 1px"><strong>“<span style="font-family:宋体">有病在身</span>”</strong></h2> <hr /> <p style="text-indent:28px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">这幅图粗看好像正常的样子,零错误率而且各曲线似乎都很平滑,略有起浮似乎可以接受.但如果仔细分析就会发现其中的猫腻.</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">下面四幅曲线图依次为bytes/sec ResponseTime of/vusers https/sec</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"> -Bytes/sec – 和压测页面的大小有密切关系,所以不容易判断健康状态</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"> –</span>ResponseTime – 小到1大到4, 要知道用户的耐心经过科学的统计是在1s以内的.以此为准每延后0.2s就会有10%左右的用户流失,这个数据不容小视</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"> –</span>Of/vusers – 这个数值即和压测机有关也和被压测机有关.这里平稳的1000用户同时压测正常</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"> –</span>Https/sec – 这个数据这里只有3000是不正常的.看过webbench/ab和loadrunner区别这篇文章的同学应该对webbench/ab的性能有一定的了解.每秒在270左右的.这个数值大家可以大概计算下.不过发现每次的数据因为并发人数的多少会有非常明显的变化,数据还是供大家参考吧~ </span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160119-70.png" title="1429196519695723.png" /></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">简单测试了下 100个并发用户和10个并发用户相差还真是大~~又压了1000看看~~</span></p> <p><span><img src="//cto.wang/usr/uploads/2016/07/20160703160119-22.png" title="1429196519721381.png" /></span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">数据大家参考下吧~也差不多能看到个大概</span></p> <p><span><img src="//cto.wang/usr/uploads/2016/07/20160703160119-97.jpg" title="1429196650111227.jpg" alt="4.jpg" /></span></p> <h2 style="border: none;padding: 0px 0px 1px"><strong><span style="font-family:宋体">健康图</span></strong></h2> <p style="text-indent:28px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">并发950用户,压测15min20s,总共704w请求数,错误率大概在0.0000 02吧~<img src="//cto.wang/usr/uploads/2016/07/20160703160120-60.png" title="1429196738133955.png" alt="5.png" /></span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">服务器响应延迟也一直在1s内,每秒平均响应数在8000.非常平衡的输出</span></p> <p><span><img src="//cto.wang/usr/uploads/2016/07/20160703160120-27.png" title="1429196747877448.png" alt="6.png" /></span></p> <h1 style="border: none;padding: 0px 0px 1px"><strong>5w<span style="font-family:宋体">并发压测无负载</span></strong></h1> <hr /> <p style="text-indent:28px"><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">在压测过程中,因为苦于没有数据作参考,整个压测过程中很多次数据都是在臆想和yy,在一次的数据压测中我们准备了3台性能和压测机硬件配置完全一样的机器,外加一台硬件内存,cores数是压测机2倍的服务器,外加3台并发2000的服务器,加起来最少5w的并发进行性能压测,结果</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">因为负载过高,我们压爆了2台被压测机, 但压测服的性能一直只在0.1-0.4徘徊,非常让我个人吃惊.虽然说张宴的博客中说nginx配置可以支持单台并发10w,但几个方面的原因使人对结果是极其怀疑的.</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">1.<span> </span>我们的服务器是阿里云的虚拟机</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">2.<span> </span>我们服务器的配置只有2c4g</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">3.<span> </span>了解其它朋友的服务器64G32cores才并发3w请求数(是服务器端每秒处理3w请求数,不是3w用户并发访问),最关键的是他们的服务器是做proxy的~~~</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">4.<span> </span>我们调用的被压测机配置甚至比压测服务器配置要高,而且数量也多太多~~</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160120-59.png" title="1429196872925840.png" /></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160120-5.png" title="1429196872546437.png" /></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">后来,虽然我们也</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">a><span> </span>借用本地物理机进行压测;</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">b><span> </span>完全重装系统重新再来;</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">但发现数据也一直是支持5w并发用户并且是轻松支持的.几次的折腾也使我个人有很长一段时间也不得不相信并发5w的数据~</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">一次偶然的情况,忽然发现nginx配置中有关于fastcgi_cache的配置~</span></p> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif"></span></p> <table style="width: 798px"> <tbody> <tr class="firstRow"> <td width="769" valign="top"> <pre class="brush:bash;toolbar:false"> #fastcgi_cache_path /data/cache/fastcgi levels=1:2 keys_zone=FastCGICache:10m inactive=5m; #fastcgi_cache FastCGICache; #fastcgi_cache_methods GET HEAD; #fastcgi_cache_use_stale error timeout invalid_header http_500; #fastcgi_intercept_errors on; #fastcgi_cache_valid 200 302 1h; #fastcgi_cache_valid 301 1d; #fastcgi_cache_valid any 1m; #fastcgi_cache_min_uses 1; #fastcgi_cache_key $request_method://$host$request_uri;</pre> </td> </tr> </tbody> </table> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">再认真确认下我们的压测脚本,发现我们的压测脚本访问的是一个页面~so,大家明白了吧~~~想撞死南墙的想法的都有了~~~</span></p> <h1>Loadrunner<span style="font-family:宋体">在</span>window<span style="font-family:宋体">上的</span>”<span style="font-family:宋体">坑</span>”</h1> <hr /> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">对于loadrunner运行在windows还是linux上这里不做个人建议. 如果对windows有深入研究,对loadrunner在windows上运行机理有可靠的把控可以使用windows系统为继续,本次我们遇到的问题包括 </span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px"></span></p> <pre class="brush:bash;toolbar:false">Error:timed out Error:Server“192.168.2.192”has shut down the connection prema Failed to connect to server 'hostname';port_ld':</pre> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">但因为测试成员对window了解程度也是一般,同时中文博客的不严谨性,也导致我们在处理这样的问题的时候一直处于被动猜测问题的层面,同时也是因为windows是闭源的,网上对这块的问题也基于 抄袭的层面,解决问题非常困难~~~</span></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">最后只有一句话,</span><span> </span><span> </span><strong><span>珍爱生命请用linux</span></strong><strong> </strong></p> <p><span style="font-family: 微软雅黑, sans-serif;font-size: 14px">在linux上压测图,</span></p> <p><img src="//cto.wang/usr/uploads/2016/07/20160703160120-2.png" title="1429197007549638.png" alt="9.png" /></p> <h1 style="border: none;padding: 0px 0px 1px"><strong><span style="font-family:宋体">最后小结</span></strong></h1> <hr /> <ul class=" list-paddingleft-2"> <li> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">了解什么是健康的压测图</span></p> </li> <li> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">.健康的标准主要包括四个方面: </span></p> </li> <ul class=" list-paddingleft-2"> <li> <p class="MsoListParagraph" style="margin-left:48px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">ResponseTime: 1s内且平稳</span></p> </li> <li> <p class="MsoListParagraph" style="margin-left:48px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">of/vusers 2g4c 1000以上</span></p> </li> <li> <p class="MsoListParagraph" style="margin-left:48px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">https/sec 1000人8000qts</span></p> </li> <li> <p class="MsoListParagraph" style="margin-left:48px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">errors 0.3%以内</span></p> </li> </ul> <li> <p class="MsoListParagraph" style="margin-left:24px"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif">多报以质疑的态度治学</span></p> </li> <li> <p class="MsoListParagraph" style="margin-left:24px;border:none;padding:0;padding:0 0 1px 0"><span style="font-size: 14px;font-family: 微软雅黑, sans-serif"><span> </span>相信权威但不迷信权威</span></p> </li> </ul> <p style="border:none;padding:0;padding:0 0 1px 0"><span>~~~~~~~Over</span></p> <hr /> <p style="border:none;padding:0;padding:0 0 1px 0"></p> 最后修改:2021 年 12 月 10 日 10 : 53 AM © 允许规范转载 赞赏 如果觉得我的文章对你有用,请随意赞赏 赞赏作者 支付宝微信
7 条评论
1
1
1
1
1
1
1