summaryrefslogtreecommitdiffstats
path: root/archives/extend/2012-December/000025.html
blob: 498da5e8e84b30dc55016dba4cae4010cbac864b (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
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
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
 <HEAD>
   <TITLE> [99s-extend] Cowboy HTTPS connection memory usage
   </TITLE>
   <LINK REL="Index" HREF="index.html" >
   <LINK REL="made" HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20HTTPS%20connection%20memory%20usage&In-Reply-To=%3C50D49382.7020309%40ninenines.eu%3E">
   <META NAME="robots" CONTENT="index,nofollow">
   <style type="text/css">
       pre {
           white-space: pre-wrap;       /* css-2.1, curent FF, Opera, Safari */
           }
   </style>
   <META http-equiv="Content-Type" content="text/html; charset=us-ascii">
   <LINK REL="Previous"  HREF="000024.html">
   <LINK REL="Next"  HREF="000026.html">
 </HEAD>
 <BODY BGCOLOR="#ffffff">
   <H1>[99s-extend] Cowboy HTTPS connection memory usage</H1>
    <B>Lo&#239;c Hoguin</B> 
    <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20HTTPS%20connection%20memory%20usage&In-Reply-To=%3C50D49382.7020309%40ninenines.eu%3E"
       TITLE="[99s-extend] Cowboy HTTPS connection memory usage">essen at ninenines.eu
       </A><BR>
    <I>Fri Dec 21 17:51:14 CET 2012</I>
    <P><UL>
        <LI>Previous message: <A HREF="000024.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
        <LI>Next message: <A HREF="000026.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#25">[ date ]</a>
              <a href="thread.html#25">[ thread ]</a>
              <a href="subject.html#25">[ subject ]</a>
              <a href="author.html#25">[ author ]</a>
         </LI>
       </UL>
    <HR>  
<!--beginarticle-->
<PRE>Can you try enabling eprof to see where the VM spends its time?

On 12/21/2012 05:49 PM, rambocoder wrote:
&gt;<i> In my preliminary testing, I used Jmeter this morning since it's an
</I>&gt;<i> easy GUI load testing app and this is what I am seeing:
</I>&gt;<i>
</I>&gt;<i> With R15B03-01 [smp:4:4] [async-threads:4] [hipe] [kernel-poll:true],
</I>&gt;<i> when I establish 1K concurrent connections via HTTPS, each connection
</I>&gt;<i> takes up about 68K of memory.
</I>&gt;<i>
</I>&gt;<i> Unfortunately, after about 1050-1200 connections, on my test server the
</I>&gt;<i> Erlang scheduler jumps to 100% CPU utilization on all 4 schedulers,
</I>&gt;<i> while up to that point the scheduler's load was oscillating up and down.
</I>&gt;<i> Using the Observer, there is only 1 ssl_connection_sup  in the ssl
</I>&gt;<i> application, having to deal with 1000+ gen_fsm workers, so that might be
</I>&gt;<i> the bottleneck. Since the ulimit on my server is 50000 I don't think I
</I>&gt;<i> am hitting any type of file handler's limit.
</I>&gt;<i>
</I>&gt;<i> Lo&#239;c and the group, am I missing some setting that is causing the
</I>&gt;<i> scheduler to go to 100% CPU and the run que in observer to be 99?
</I>&gt;<i>
</I>&gt;<i> Sincerely,
</I>&gt;<i>
</I>&gt;<i> rambocoder
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i> On Fri, Dec 21, 2012 at 6:45 AM, Lo&#239;c Hoguin &lt;<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>
</I>&gt;<i> &lt;mailto:<A HREF="https://lists.ninenines.eu/listinfo/extend">essen at ninenines.eu</A>&gt;&gt; wrote:
</I>&gt;<i>
</I>&gt;<i>     On 12/21/2012 04:34 AM, rambocoder wrote:
</I>&gt;<i>
</I>&gt;<i>         Does anybody know either from benchmarks or real world data what
</I>&gt;<i>         is the
</I>&gt;<i>         average memory footprint of each concurrent HTTPS connection to
</I>&gt;<i>         cowboy?
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>     I don't have anything, sorry. I'm guessing it consumes a lot more
</I>&gt;<i>     than TCP though.
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>         SSL app in Erlang reuses SSL session-ids so I am not sure if the
</I>&gt;<i>         Apache
</I>&gt;<i>         Bench I test with reuses the session id or it does not.
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>     I wouldn't know, but I wouldn't trust Apache Bench doing the right
</I>&gt;<i>     thing. Any other benchmark tool usually works better in my experience.
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>         BTW, what makes an erlang api &quot;documented&quot; vs &quot;undocumented&quot;. For
</I>&gt;<i>         example ssl:session_info/1 function here (
</I>&gt;<i>         <A HREF="https://github.com/erlang/otp/__blob/maint/lib/ssl/src/ssl.__erl#L411">https://github.com/erlang/otp/__blob/maint/lib/ssl/src/ssl.__erl#L411</A>
</I>&gt;<i>         &lt;<A HREF="https://github.com/erlang/otp/blob/maint/lib/ssl/src/ssl.erl#L411">https://github.com/erlang/otp/blob/maint/lib/ssl/src/ssl.erl#L411</A>&gt;
</I>&gt;<i>         ) has
</I>&gt;<i>         a spec and a short doc, but session_info is not described
</I>&gt;<i>         <A HREF="http://www.erlang.org/doc/man/__ssl.html">http://www.erlang.org/doc/man/__ssl.html</A>
</I>&gt;<i>         &lt;<A HREF="http://www.erlang.org/doc/man/ssl.html">http://www.erlang.org/doc/man/ssl.html</A>&gt; .ssl:session_info/1 is
</I>&gt;<i>         a useful
</I>&gt;<i>         function to be able to track if the load generator is reusing
</I>&gt;<i>         the SSL
</I>&gt;<i>         session_id or it is generating new one, because that would make
</I>&gt;<i>         all the
</I>&gt;<i>         difference during measurement due to Erlang caching SSL sessions
</I>&gt;<i>         by default.
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>     The documentation is separate (they're not using edoc). It's perhaps
</I>&gt;<i>     not deemed useful enough for documenting it. I wouldn't worry about
</I>&gt;<i>     using it for measurements though.
</I>&gt;<i>
</I>&gt;<i>     Try asking Ingela on the ML about it, perhaps they just forgot to
</I>&gt;<i>     document it.
</I>&gt;<i>
</I>&gt;<i>     --
</I>&gt;<i>     Lo&#271;c Hoguin
</I>&gt;<i>     Erlang Cowboy
</I>&gt;<i>     Nine Nines
</I>&gt;<i>     <A HREF="http://ninenines.eu">http://ninenines.eu</A>
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i>
</I>&gt;<i> _______________________________________________
</I>&gt;<i> Extend mailing list
</I>&gt;<i> <A HREF="https://lists.ninenines.eu/listinfo/extend">Extend at lists.ninenines.eu</A>
</I>&gt;<i> <A HREF="http://lists.ninenines.eu:81/listinfo/extend">http://lists.ninenines.eu:81/listinfo/extend</A>
</I>&gt;<i>
</I>

-- 
Lo&#239;c Hoguin
Erlang Cowboy
Nine Nines
<A HREF="http://ninenines.eu">http://ninenines.eu</A>

</PRE>

<!--endarticle-->
    <HR>
    <P><UL>
        <!--threads-->
	<LI>Previous message: <A HREF="000024.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
	<LI>Next message: <A HREF="000026.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#25">[ date ]</a>
              <a href="thread.html#25">[ thread ]</a>
              <a href="subject.html#25">[ subject ]</a>
              <a href="author.html#25">[ author ]</a>
         </LI>
       </UL>

<hr>
<a href="https://lists.ninenines.eu/listinfo/extend">More information about the Extend
mailing list</a><br>
</body></html>