-
Notifications
You must be signed in to change notification settings - Fork 2
/
index.html
256 lines (256 loc) · 15.9 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>squid压力测试</title>
<meta name="author" content="陈子">
<!-- Le HTML5 shim, for IE6-8 support of HTML elements -->
<!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<!-- Le styles -->
<link href="/assets/themes/twitter/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="/assets/themes/twitter/css/style.css?body=1" rel="stylesheet" type="text/css" media="all">
<link href="/assets/themes/twitter/css/pygments/default.css" rel="stylesheet" type="text/css">
<!-- Le fav and touch icons -->
<!-- Update these with your own images
<link rel="shortcut icon" href="images/favicon.ico">
<link rel="apple-touch-icon" href="images/apple-touch-icon.png">
<link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png">
-->
</head>
<body>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="brand" href="/">三斗室</a>
<ul class="nav">
<li><a href="/archive.html">归档</a></li>
<li><a href="/categories.html">分类</a></li>
<li><a href="/errata.html">《网站运维技术与实践》勘误</a></li>
<li><a href="/pages.html">Pages</a></li>
<li><a href="/projects.html">学习记录</a></li>
<li><a href="/tags.html">标签</a></li>
<li><a href="http://chenlinux.com/poetry/index.html" />诗文集</a></li>
<li><link title="RSS 2.0" type="application/rss+xml" href="http://chenlinux.com/feed.xml" rel="alternate" /><a href="http://chenlinux.com/feed.xml" target="_blank">RSS订阅</a></li>
</ul>
<ul class="nav pull-right"><li><a href="/about.html">有关我</a></li></ul>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="span7">
<div class="row">
<div class="page-header">
<h1>squid压力测试 <small></small></h1>
<div class="date"><span>03 November 2009</span></div>
<ul class="tag_box pull-right">
<li><a href="/tags.html#squid-ref">squid <span>25</span></a></li>
<li><a href="/tags.html#http_load-ref">http_load <span>1</span></a></li>
</ul>
</div>
<div style='background-color: #FFF;'>
<p>向公司申请了台设备做测试机,打算把公司各种应用服务都自己练练,熟悉一下。先从最传统的squid开始做压力测试。先发一个小东东http_load的测试:</p>
<ul>
<li>实验环境:</li>
</ul>
<p>服务器硬件条件:内存2096M,CPU2.33GHz,硬盘70G;
Squid版本:Version 2.6.STABLE22</p>
<ul>
<li>实验架构:</li>
</ul>
<p>单台服务器:沈阳
web页面由nginx发布,采用基础配置,监听8080端口,网站页面类型包括.htm/html/css/js/xml;
前端由squid代理,采用公司默认配置,由cache_peer请求本机页面,监听80端口;
测试访问地点:北京</p>
<ul>
<li>测试方法:</li>
</ul>
<p>创建url文件,添加url记录共11条,其中html六条,js三条,css/xml各一条。(本来还有一个tar.gz文件,结果文件有近2M,影响测试结果,放弃)
根据网友经验,采取fetches参数配合parallel参数测试。</p>
<p>命令如下:./http_load -f 3000 -p 100 url > result.txt</p>
<p>根据情况调整parallel参数。</p>
<ul>
<li>测试结果:</li>
</ul>
<p>** 当p到180以上后,测试过程中就开始出现类似下面这样提示:</p>
<pre><code>http://www.test.com/ts.js: Connection timed out
http://www.test.com/ts.js: byte count wrong
</code></pre>
<p>而结果中的fetches/sec则在650-850之间随机出现,属于不太稳定的状态了。而p再往上提高(我从200一直实验到500), fetches/sec基本都在800左右,而msecs/connect则从50上升到255左右。
** 当p在140以下时,fetches/sec在1500以上,msecs/connect在0.2左右,bytes/sec在85000左右(此时服务器iptraf -d eth1查看流量大概每秒12M);
** 当p到140以上后,f/s迅速下降到1000左右,ms/c则上升到10以上;parallel从150到180的过程中,f/s、ms/c和b/s基本是均速变化的;同时查看服务器的iostat或者vmstat,一般us在90%多,bo偶然有1出现(后来发现是因为我放的测试文件大小相差较大)。</p>
<ul>
<li>实验结论</li>
</ul>
<p>squid服务在并发数140以下时,能够提供优质的服务,140以上,性能逐渐下降,当并发数到200以上后,遭遇瓶颈,主要在CPU方面。</p>
<ul>
<li>实验疑问</li>
</ul>
<p>公司在线服务的设备,一般eth1流量都能跑到60M,有些甚至上了100M,这跟测试结果相差也太大了?</p>
<ul>
<li>参考资料
<a href="http://www.hiadmin.com/tomcat-%e5%b9%b6%e5%8f%91%e6%b5%8b%e8%af%95/">http://www.hiadmin.com/tomcat-%e5%b9%b6%e5%8f%91%e6%b5%8b%e8%af%95/</a>
./http_load -parallel 200 -seconds 10 urls
按照固定时间来结束测试,这样可以比较相同时间内被测服务器的响应速度.
./http_load -parallel 200 -fetches 1000 urls
按照固定申请数来测试,这样可以比较相同访问量下返回的响应速度.
虽然两者都可以获取到服务器的响应速度
但是使用fetches更容易让被测服务器收到压力
由于seconds控制测试时间,很有可能在短时间内测试客户端并没有发起足够数量的请求
而服务端在收到足够压力之前,测试就已经结束了.
有一些情况,诸如内存泄漏以及资源回收不利或者对后面的响应速度越来越慢等情况
在这种测试条件下不容易发生
而使用fetchs,能够让客户端保证确定请求数的全部处理.
使用时间作为控制参数
会由于测试人员不够耐心而人为将seconds参数设置过小
导致测试结果失去意义
所以,最后建议使用fetches作为测试参数.用以作为基准进行比较
如果httpd_load获取到的页面数据和上次不一致
则会报错byte count wrong
如果是动态页面,由于返回数据内容不同.则此报错可以忽略</li>
</ul>
<hr>
<div class="pagination">
<ul>
<li class="prev"><a href="/2009/11/03/tcpwrapper" title="tcpwrapper">← Previous</a></li>
<li><a href="/archive.html">Archive</a></li>
<li class="next"><a href="/2009/11/03/using-shell-variable-in-awk-script" title="awk调用shell变量">Next →</a></li>
</ul>
</div>
<hr>
<!-- JiaThis Button BEGIN -->
<div class="jiathis_style">
<span class="jiathis_txt">分享到:</span>
<a class="jiathis_button_tsina">新浪微博</a>
<a class="jiathis_button_weixin">微信</a>
<a class="jiathis_button_renren">人人网</a>
<a class="jiathis_button_ydnote">有道云笔记</a>
<a class="jiathis_button_gmail">Gmail邮箱</a>
<a class="jiathis_button_twitter">Twitter</a>
<a class="jiathis_button_googleplus">Google+</a>
<a class="jiathis_button_hi">百度空间</a>
<a class="jiathis_button_fb">Facebook</a>
<a class="jiathis_button_douban">豆瓣</a>
<a href="http://www.jiathis.com/share?uid=1589850" class="jiathis jiathis_txt jiathis_separator jtico jtico_jiathis" target="_blank">更多</a>
<a class="jiathis_counter_style"></a>
</div>
<script type="text/javascript" >
var jiathis_config={
data_track_clickback:true,
summary:"",
ralateuid:{
"tsina":"1035836154"
},
shortUrl:false,
hideMore:false
}
</script>
<script type="text/javascript" src="http://v3.jiathis.com/code/jia.js?uid=1589850" charset="utf-8"></script>
<!-- JiaThis Button END -->
<!-- UY BEGIN -->
<div id="uyan_frame"></div>
<script type="text/javascript" id="UYScript" src="http://v1.uyan.cc/js/iframe.js?UYUserId=1589850" async=""></script>
<!-- UY END -->
</div>
</div>
</div>
<div class="span4">
<div class="well sidebar-nav">
<ul id="relate_blog" class="nav nav-list">
<li class="nav-header">最近文章</li>
<li><a href="/2015/08/25/kibana-custom-field-formatters">【翻译】Kibana 字段的自定义展示格式开发</a></li>
<li><a href="/2015/04/03/types-mapping-conflict-in-one-index">Elasticsearch 同一索引不同类型下同名字段的映射冲突实例</a></li>
<li><a href="/2015/03/14/spark-streaming-kafka">spark streaming 接收 kafka 数据示例</a></li>
<li><a href="/2015/03/14/kibana3-source-code-analysis">Kibana 3 源码解析</a></li>
<li><a href="/2015/03/06/kibana4-for-slowlog">用 Kibana4 实现 PHP 慢日志函数堆栈分析</a></li>
<li><a href="/2015/02/25/kibana-aggregation-execution-order-and-you">【翻译】kibana 的聚合执行次序</a></li>
<li><a href="/2015/02/25/kibana-4-rc1-is-now-available">【翻译】Kibana 4 RC1 发布</a></li>
<li><a href="/2015/02/25/kibana-4-literally">【翻译】kibana 4 正式就位</a></li>
<li><a href="/2015/02/25/kibana-4-for-investigating-pacs-super-pacs-and-your-neighbors">【翻译】用 kibana 4 调查你邻居可能投票给的人</a></li>
</ul>
</div>
<div class="well sidebar-nav">
<iframe width="100%" height="550" class="share_self" frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=1&ptype=1&speed=0&skin=2&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=1035836154&verifier=a26926d5&dpc=1"></iframe>
</div>
<div class="well sidebar-nav">
<div id="uyan_list_time_frame"></div>
<script type="text/javascript" id="UYScriptTime" src="http://v1.uyan.cc/js/iframe_time_list.js?UYUserId=1589850&rankType=time" async=""></script>
</div>
<div class="well sidebar-nav">
<ul id="linklists" class="nav nav-list">
<li class="nav-header">友情链接(英文)</li>
<li><a href="http://codeascraft.com/" title="Etsy 运维团队博客">Code as Craft</a></li>
<li><a href="http://devopsanywhere.blogspot.jp/" title="">devopsanywhere</a></li>
<li><a href="http://www.jedi.be/blog/" title="">Jong En Dynamische Informatica</a></li>
<li><a href="http://www.planetdevops.net/" title="">planetdevops</a></li>
<li><a href="http://www.kitchensoap.com/" title="《网站运维》作者,Etsy 运维">Kitchen Soap</a></li>
<li><a href="http://blog.johngoulah.com" title="Musings of linux, open source, cloud computing and systems">John Goulah</a></li>
<li><a href="http://serverfault.com/" title="stackexchange下属的系统工程师问答网站">serverfault</a></li>
<li><a href="http://www.thegeekstuff.com/" title="各种超酷Linux命令用法">TheGeekStuff</a></li>
<li><a href="http://neilb.org/" title="The good,the bad,and the beautiful">neilb</a></li>
<li><a href="http://www.reddit.com/r/perl/" title="">reddit perl 频道</a></li>
<li><a href="http://jpetazzo.github.io/" title="">~jpetazzo</a></li>
<li><a href="http://www.perfplanet.com/" title="News and views from the web performance blogosphere">Performance Planet</a></li>
<li><a href="http://cuddletech.com/blog/" title="Use UNIX or die">Cuddle Tech</a></li>
<li><a href="http://showmetheco.de/" title="Viacheslav Tykhanovskyi(PocketIO/Text::Haml)">No time to wait</a></li>
<li><a href="http://blog.dataloop.io/" title="A new SaaS monitoring tool for DevOps & Operations">Dataloop.IO</a></li>
<li><a href="http://www.ducea.com/" title="">MDLog:/sysadmin</a></li>
<li><a href="http://planeteria.org/perl6/" title="Perl6 文集">Planet Perl 6</a></li>
<li><a href="http://www.metaforsoftware.com/blog/" title="">metafor</a></li>
<li><a href="http://blog.kablamo.org/" title="Eric Johnson,一个游走在伦敦和北京的 Perler">kablamo</a></li>
<li><a href="http://aphyr.com/posts" title="call me maybe 吐槽系列">Aphyr</a></li>
</ul>
</div>
<div class="well sidebar-nav">
<ul id="linklists" class="nav nav-list">
<li class="nav-header">友情链接(中文)</li>
<li><a href="http://www.nginxs.com/" title="">eric</a></li>
<li><a href="http://www.hellodb.net/" title="Ali DBA 张瑞">Hello DBA</a></li>
<li><a href="http://blog.nosqlfan.com/" title="not only sql信息集散地">NoSQLfan</a></li>
<li><a href="http://ourmysql.com/" title="">OurMySQL</a></li>
<li><a href="http://timo.piqiu.me/" title="TIMO IS MY OASIS">Timo</a></li>
<li><a href="http://www.liurongxing.com/" title="">刘荣星</a></li>
<li><a href="http://www.cnadn.net/" title="F5工程师">应用交付学习之路</a></li>
<li><a href="http://scmbob.org/" title="杭州NSN工程师,shell高人~">扛一肩记忆</a></li>
<li><a href="http://www.php-oa.com/" title="音悦台技术经理">扶凯</a></li>
<li><a href="http://www.lark.net.cn/" title="王剑">lark's cloud</a></li>
<li><a href="http://log.heartoutside.com/" title="HeartOutSide">HeartOutside</a></li>
<li><a href="http://blog.liulantao.com/" title="刘兰涛">Lax</a></li>
<li><a href="http://niubie.me/" title="莫言">莫言</a></li>
<li><a href="http://noops.me/" title="小米运维部">NoOps</a></li>
<li><a href="http://www.searchtech.pro/" title="">云端分布式搜索技术</a></li>
<li><a href="http://www.usefulshare.com" title="当当网安全运维">UsefulShare</a></li>
<li><a href="http://junqili.com/" title="深入研究puppet">纸飞机</a></li>
<li><a href="http://www.chinaxing.org/" title="">ChinaXing</a></li>
<li><a href="http://bubbyroom.com/" title="守住每一天">Liuyu's blog</a></li>
<li><a href="http://blog.aka-cool.net/" title="">Aka.Why</a></li>
<li><a href="http://blog.l8ii.com/" title="刘侨">LairdNote</a></li>
<li><a href="http://flw.tools/" title="">flw的工具箱</a></li>
<li><a href="http://blog.mcshell.org/" title="">mcshell</a></li>
<li><a href="http://novoland.github.io/" title="">克鲁斯卡尔的博客</a></li>
</ul>
</div>
<div class="well sidebar-nav">
<ul id="booklists" class="nav nav-list">
<li class="nav-header">我写的技术书籍</li>
<li><a href='http://product.china-pub.com/3769604'><img src='http://images.china-pub.com/ebook3765001-3770000/3769604/shupi.jpg' border='0' alt='网站运维技术与实践'/></a></li>
<li class="nav-header">我参与翻译的技术书籍</li>
<li><a href='http://product.china-pub.com/4582714'><img src='http://images.china-pub.com/ebook4580001-4585000/4582714/shupi.jpg' border='0' alt='Puppet 实战手册'/></a></li>
<li class="nav-header">我写的电子书籍</li>
<li><a href='http://chenryn.gitbooks.io/logstash-best-practice/'><img src='https://sm3lir.cloudimage.io/s/cdn/x/https://www.gitbook.io/cover/book/chenryn/logstash-best-practice?build=1416299695472' border='0' alt='LogStash 最佳实践'/></a></li>
<li><a href='http://kibana.logstash.es/'><img src='https://sm3lir.cloudimage.io/s/cdn/x/https://www.gitbook.io/cover/book/chenryn/kibana-guide-cn?build=1415872457562' border='0' alt='Kibana 中文指南'/></a></li>
</div>
</div>
</div> <!-- row -->
<footer>
<p>© 陈子 2015
with help from <a href="http://jekyllbootstrap.com" target="_blank" title="The Definitive Jekyll Blogging Framework">Jekyll Bootstrap</a>
and <a href="http://twitter.github.com/bootstrap/" target="_blank">Twitter Bootstrap</a>
</p>
</footer>
</div> <!-- /container -->
</body>
</html>