summaryrefslogtreecommitdiffstats
path: root/archives/extend/2012-December/000024.html
blob: f55a4f92f8d7109a884329083c31f87603c1101f (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
<!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=%3CCAJ0zLRM4mBK0Du8W0Dg84D6vOqpMTOOOqbJD5L0ZO9cyxR%3DrZg%40mail.gmail.com%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="000023.html">
   <LINK REL="Next"  HREF="000025.html">
 </HEAD>
 <BODY BGCOLOR="#ffffff">
   <H1>[99s-extend] Cowboy HTTPS connection memory usage</H1>
    <B>rambocoder</B> 
    <A HREF="mailto:extend%40lists.ninenines.eu?Subject=Re%3A%20%5B99s-extend%5D%20Cowboy%20HTTPS%20connection%20memory%20usage&In-Reply-To=%3CCAJ0zLRM4mBK0Du8W0Dg84D6vOqpMTOOOqbJD5L0ZO9cyxR%3DrZg%40mail.gmail.com%3E"
       TITLE="[99s-extend] Cowboy HTTPS connection memory usage">erlang at rambocoder.com
       </A><BR>
    <I>Fri Dec 21 17:49:37 CET 2012</I>
    <P><UL>
        <LI>Previous message: <A HREF="000023.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
        <LI>Next message: <A HREF="000025.html">[99s-extend] Cowboy HTTPS connection memory usage
</A></li>
         <LI> <B>Messages sorted by:</B> 
              <a href="date.html#24">[ date ]</a>
              <a href="thread.html#24">[ thread ]</a>
              <a href="subject.html#24">[ subject ]</a>
              <a href="author.html#24">[ author ]</a>
         </LI>
       </UL>
    <HR>  
<!--beginarticle-->
<PRE>In my preliminary testing, I used Jmeter this morning since it's an
easy GUI load testing app and this is what I am seeing:

With R15B03-01 [smp:4:4] [async-threads:4] [hipe] [kernel-poll:true], when
I establish 1K concurrent connections via HTTPS, each connection takes up
about 68K of memory.

Unfortunately, after about 1050-1200 connections, on my test server the
Erlang scheduler jumps to 100% CPU utilization on all 4 schedulers, while
up to that point the scheduler's load was oscillating up and down. Using
the Observer, there is only 1 ssl_connection_sup  in the ssl application,
having to deal with 1000+ gen_fsm workers, so that might be the bottleneck.
Since the ulimit on my server is 50000 I don't think I am hitting any type
of file handler's limit.

Lo&#239;c and the group, am I missing some setting that is causing the scheduler
to go to 100% CPU and the run que in observer to be 99?

Sincerely,

rambocoder


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>&gt; wrote:

&gt;<i> On 12/21/2012 04:34 AM, rambocoder wrote:
</I>&gt;<i>
</I>&gt;&gt;<i> Does anybody know either from benchmarks or real world data what is the
</I>&gt;&gt;<i> average memory footprint of each concurrent HTTPS connection to cowboy?
</I>&gt;&gt;<i>
</I>&gt;<i>
</I>&gt;<i> I don't have anything, sorry. I'm guessing it consumes a lot more than TCP
</I>&gt;<i> 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 Apache
</I>&gt;&gt;<i> Bench I test with reuses the session id or it does not.
</I>&gt;&gt;<i>
</I>&gt;<i>
</I>&gt;<i> I wouldn't know, but I wouldn't trust Apache Bench doing the right thing.
</I>&gt;<i> 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;&gt;<i> example ssl:session_info/1 function here (
</I>&gt;&gt;<i> <A HREF="https://github.com/erlang/otp/**blob/maint/lib/ssl/src/ssl.**erl#L411&lt;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&lt;https://github.com/erlang/otp/blob/maint/lib/ssl/src/ssl.erl#L411</A>&gt;) has
</I>&gt;&gt;<i> a spec and a short doc, but session_info is not described
</I>&gt;&gt;<i> <A HREF="http://www.erlang.org/doc/man/**ssl.html&lt;http://www.erlang.org/doc/man/ssl.html">http://www.erlang.org/doc/man/**ssl.html&lt;http://www.erlang.org/doc/man/ssl.html</A>&gt;.ssl:session_info/1 is a useful
</I>&gt;&gt;<i> function to be able to track if the load generator is reusing the SSL
</I>&gt;&gt;<i> session_id or it is generating new one, because that would make all the
</I>&gt;&gt;<i> difference during measurement due to Erlang caching SSL sessions by
</I>&gt;&gt;<i> default.
</I>&gt;&gt;<i>
</I>&gt;<i>
</I>&gt;<i> The documentation is separate (they're not using edoc). It's perhaps not
</I>&gt;<i> deemed useful enough for documenting it. I wouldn't worry about using it
</I>&gt;<i> for measurements though.
</I>&gt;<i>
</I>&gt;<i> Try asking Ingela on the ML about it, perhaps they just forgot to document
</I>&gt;<i> 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>-------------- next part --------------
An HTML attachment was scrubbed...
URL: &lt;<A HREF="http://lists.ninenines.eu/archives/extend/attachments/20121221/8bfb2f11/attachment.html">http://lists.ninenines.eu/archives/extend/attachments/20121221/8bfb2f11/attachment.html</A>&gt;
</PRE>

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

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