summaryrefslogtreecommitdiffstats
path: root/archives/extend/attachments/20121221/8bfb2f11/attachment.html
blob: 9650a876413094c388c76e9c2dc2cdb1936a4a9a (plain) (blame)
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
<tt>
In&nbsp;my&nbsp;preliminary&nbsp;testing,&nbsp;I&nbsp;used&nbsp;Jmeter&nbsp;this&nbsp;morning&nbsp;since&nbsp;it&#39;s&nbsp;an&nbsp;easy GUI&nbsp;load&nbsp;testing&nbsp;app and&nbsp;this&nbsp;is&nbsp;what&nbsp;I&nbsp;am&nbsp;seeing:&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;With&nbsp;R15B03-01&nbsp;[smp:4:4]&nbsp;[async-threads:4]&nbsp;[hipe]&nbsp;[kernel-poll:true],&nbsp;when&nbsp;I&nbsp;establish&nbsp;1K&nbsp;concurrent&nbsp;connections&nbsp;via&nbsp;HTTPS,&nbsp;each&nbsp;connection&nbsp;takes&nbsp;up&nbsp;about&nbsp;68K&nbsp;of&nbsp;memory.&lt;br&gt;<br>
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Unfortunately,&nbsp;after&nbsp;about&nbsp;1050-1200&nbsp;connections,&nbsp;on&nbsp;my&nbsp;test&nbsp;server&nbsp;the&nbsp;Erlang&nbsp;scheduler&nbsp;jumps&nbsp;to&nbsp;100%&nbsp;CPU&nbsp;utilization&nbsp;on&nbsp;all&nbsp;4&nbsp;schedulers,&nbsp;while&nbsp;up&nbsp;to&nbsp;that&nbsp;point&nbsp;the&nbsp;scheduler&#39;s&nbsp;load&nbsp;was oscillating up&nbsp;and&nbsp;down.&nbsp;Using&nbsp;the&nbsp;Observer,&nbsp;there&nbsp;is&nbsp;only&nbsp;1&nbsp;ssl_connection_sup&nbsp; in&nbsp;the&nbsp;ssl&nbsp;application,&nbsp;having&nbsp;to&nbsp;deal&nbsp;with&nbsp;1000+&nbsp;gen_fsm&nbsp;workers,&nbsp;so&nbsp;that&nbsp;might&nbsp;be&nbsp;the&nbsp;bottleneck.&nbsp;Since&nbsp;the&nbsp;ulimit&nbsp;on&nbsp;my&nbsp;server&nbsp;is&nbsp;50000&nbsp;I&nbsp;don&#39;t&nbsp;think&nbsp;I&nbsp;am&nbsp;hitting&nbsp;any&nbsp;type&nbsp;of&nbsp;file&nbsp;handler&#39;s&nbsp;limit.&lt;/div&gt;<br>
&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Loïc&nbsp;and&nbsp;the&nbsp;group,&nbsp;am&nbsp;I&nbsp;missing&nbsp;some&nbsp;setting&nbsp;that&nbsp;is&nbsp;causing&nbsp;the&nbsp;scheduler&nbsp;to&nbsp;go&nbsp;to&nbsp;100%&nbsp;CPU&nbsp;and&nbsp;the&nbsp;run&nbsp;que&nbsp;in&nbsp;observer&nbsp;to&nbsp;be&nbsp;99?&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;table&nbsp;cellpadding=&quot;0&quot;&nbsp;class=&quot;cf&nbsp;an5&quot;&nbsp;id=&quot;:zc&quot;&nbsp;style=&quot;border-collapse:collapse;outline:none;overflow:hidden;table-layout:fixed;width:202px;color:rgb(34,34,34);font-family:arial,sans-serif;text-align:start;background-color:rgb(255,255,255)&quot;&gt;<br>
&lt;tbody&gt;&lt;tr&gt;&lt;td&nbsp;class=&quot;anQ&quot;&nbsp;style=&quot;margin:0px;overflow:hidden;text-overflow:ellipsis;vertical-align:top&quot;&gt;Sincerely,&lt;br&gt;&lt;br&gt;rambocoder&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;br&gt;&lt;div&nbsp;class=&quot;gmail_quote&quot;&gt;On&nbsp;Fri,&nbsp;Dec&nbsp;21,&nbsp;2012&nbsp;at&nbsp;6:45&nbsp;AM,&nbsp;Loïc&nbsp;Hoguin&nbsp;&lt;span&nbsp;dir=&quot;ltr&quot;&gt;&lt;&lt;a&nbsp;href=&quot;mailto:[email protected]&quot;&nbsp;target=&quot;_blank&quot;&gt;[email protected]&lt;/a&gt;&gt;&lt;/span&gt;&nbsp;wrote:&lt;br&gt;<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;&lt;div&nbsp;class=&quot;im&quot;&gt;On&nbsp;12/21/2012&nbsp;04:34&nbsp;AM,&nbsp;rambocoder&nbsp;wrote:&lt;br&gt;<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;<br>
Does&nbsp;anybody&nbsp;know&nbsp;either&nbsp;from&nbsp;benchmarks&nbsp;or&nbsp;real&nbsp;world&nbsp;data&nbsp;what&nbsp;is&nbsp;the&lt;br&gt;<br>
average&nbsp;memory&nbsp;footprint&nbsp;of&nbsp;each&nbsp;concurrent&nbsp;HTTPS&nbsp;connection&nbsp;to&nbsp;cowboy?&lt;br&gt;<br>
&lt;/blockquote&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
I&nbsp;don&#39;t&nbsp;have&nbsp;anything,&nbsp;sorry.&nbsp;I&#39;m&nbsp;guessing&nbsp;it&nbsp;consumes&nbsp;a&nbsp;lot&nbsp;more&nbsp;than&nbsp;TCP&nbsp;though.&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;<br>
SSL&nbsp;app&nbsp;in&nbsp;Erlang&nbsp;reuses&nbsp;SSL&nbsp;session-ids&nbsp;so&nbsp;I&nbsp;am&nbsp;not&nbsp;sure&nbsp;if&nbsp;the&nbsp;Apache&lt;br&gt;<br>
Bench&nbsp;I&nbsp;test&nbsp;with&nbsp;reuses&nbsp;the&nbsp;session&nbsp;id&nbsp;or&nbsp;it&nbsp;does&nbsp;not.&lt;br&gt;<br>
&lt;/blockquote&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
I&nbsp;wouldn&#39;t&nbsp;know,&nbsp;but&nbsp;I&nbsp;wouldn&#39;t&nbsp;trust&nbsp;Apache&nbsp;Bench&nbsp;doing&nbsp;the&nbsp;right&nbsp;thing.&nbsp;Any&nbsp;other&nbsp;benchmark&nbsp;tool&nbsp;usually&nbsp;works&nbsp;better&nbsp;in&nbsp;my&nbsp;experience.&lt;div&nbsp;class=&quot;im&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;blockquote&nbsp;class=&quot;gmail_quote&quot;&nbsp;style=&quot;margin:0&nbsp;0&nbsp;0&nbsp;.8ex;border-left:1px&nbsp;#ccc&nbsp;solid;padding-left:1ex&quot;&gt;<br>
BTW,&nbsp;what&nbsp;makes&nbsp;an&nbsp;erlang&nbsp;api&nbsp;&quot;documented&quot;&nbsp;vs&nbsp;&quot;undocumented&quot;.&nbsp;For&lt;br&gt;<br>
example&nbsp;ssl:session_info/1&nbsp;function&nbsp;here&nbsp;(&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;https://github.com/erlang/otp/blob/maint/lib/ssl/src/ssl.erl#L411&quot;&nbsp;target=&quot;_blank&quot;&gt;https://github.com/erlang/otp/&lt;u&gt;&lt;/u&gt;blob/maint/lib/ssl/src/ssl.&lt;u&gt;&lt;/u&gt;erl#L411&lt;/a&gt;&nbsp;)&nbsp;has&lt;br&gt;<br>
a&nbsp;spec&nbsp;and&nbsp;a&nbsp;short&nbsp;doc,&nbsp;but&nbsp;session_info&nbsp;is&nbsp;not&nbsp;described&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;http://www.erlang.org/doc/man/ssl.html&quot;&nbsp;target=&quot;_blank&quot;&gt;http://www.erlang.org/doc/man/&lt;u&gt;&lt;/u&gt;ssl.html&lt;/a&gt;&nbsp;.ssl:session_info/1&nbsp;is&nbsp;a&nbsp;useful&lt;br&gt;<br>
function&nbsp;to&nbsp;be&nbsp;able&nbsp;to&nbsp;track&nbsp;if&nbsp;the&nbsp;load&nbsp;generator&nbsp;is&nbsp;reusing&nbsp;the&nbsp;SSL&lt;br&gt;<br>
session_id&nbsp;or&nbsp;it&nbsp;is&nbsp;generating&nbsp;new&nbsp;one,&nbsp;because&nbsp;that&nbsp;would&nbsp;make&nbsp;all&nbsp;the&lt;br&gt;<br>
difference&nbsp;during&nbsp;measurement&nbsp;due&nbsp;to&nbsp;Erlang&nbsp;caching&nbsp;SSL&nbsp;sessions&nbsp;by&nbsp;default.&lt;br&gt;<br>
&lt;/blockquote&gt;<br>
&lt;br&gt;&lt;/div&gt;<br>
The&nbsp;documentation&nbsp;is&nbsp;separate&nbsp;(they&#39;re&nbsp;not&nbsp;using&nbsp;edoc).&nbsp;It&#39;s&nbsp;perhaps&nbsp;not&nbsp;deemed&nbsp;useful&nbsp;enough&nbsp;for&nbsp;documenting&nbsp;it.&nbsp;I&nbsp;wouldn&#39;t&nbsp;worry&nbsp;about&nbsp;using&nbsp;it&nbsp;for&nbsp;measurements&nbsp;though.&lt;br&gt;<br>
&lt;br&gt;<br>
Try&nbsp;asking&nbsp;Ingela&nbsp;on&nbsp;the&nbsp;ML&nbsp;about&nbsp;it,&nbsp;perhaps&nbsp;they&nbsp;just&nbsp;forgot&nbsp;to&nbsp;document&nbsp;it.&lt;span&nbsp;class=&quot;HOEnZb&quot;&gt;&lt;font&nbsp;color=&quot;#888888&quot;&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
--&nbsp;&lt;br&gt;<br>
Loďc&nbsp;Hoguin&lt;br&gt;<br>
Erlang&nbsp;Cowboy&lt;br&gt;<br>
Nine&nbsp;Nines&lt;br&gt;<br>
&lt;a&nbsp;href=&quot;http://ninenines.eu&quot;&nbsp;target=&quot;_blank&quot;&gt;http://ninenines.eu&lt;/a&gt;&lt;br&gt;<br>
&lt;br&gt;<br>
&lt;/font&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;/div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;<br>

</tt>