<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general">
    <title>gmane.comp.lang.erlang.general</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68591"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68590"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68589"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68588"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68587"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68586"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68585"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68584"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68583"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68582"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68581"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68580"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68579"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68578"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68577"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68576"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68575"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68574"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68573"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68572"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68591">
    <title>Re: Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68591</link>
    <description>&lt;pre&gt;
It is only 100-500 messages per second.

Best regards,
Max



On Fri, May 24, 2013 at 7:49 PM, Tim Watson &amp;lt;watson.timothy&amp;lt; at &amp;gt;gmail.com&amp;gt;wrote:

&lt;/pre&gt;</description>
    <dc:creator>Max Bourinov</dc:creator>
    <dc:date>2013-05-24T19:59:28</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68590">
    <title>Re: Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68590</link>
    <description>&lt;pre&gt;

I'm pretty sure what he said was that he's currently handling 100 M/s, which probably fits the "messages per second" guess, since as you point out, rabbit has not been demonstrated to go anywhere near 1millions messages per second.

Is your gen_server wrapper open source btw?
&lt;/pre&gt;</description>
    <dc:creator>Tim Watson</dc:creator>
    <dc:date>2013-05-24T17:49:20</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68589">
    <title>Re: Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68589</link>
    <description>&lt;pre&gt;Nonsense. He hasn't stated what his target throughput actually is, so how can you say that?

On 24 May 2013, at 18:04, Yogish Baliga &amp;lt;yogishb&amp;lt; at &amp;gt;yahoo.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Tim Watson</dc:creator>
    <dc:date>2013-05-24T17:18:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68588">
    <title>Re: Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68588</link>
    <description>&lt;pre&gt;Single RabbitMQ server cannot handle your load requirement. You need to
setup multiple RabbitMQ servers and handle shard the messages across
multiple servers.

&lt;/pre&gt;</description>
    <dc:creator>Yogish Baliga</dc:creator>
    <dc:date>2013-05-24T17:04:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68587">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68587</link>
    <description>&lt;pre&gt;emysql… check your MySQL query log for queries with large return results. Emysql has no cursor-support, so you have to build the result in memory and this can *easily* blow up your heap space if you do a large select.

Jesper Louis Andersen
  Erlang Solutions Ltd., Copenhagen



On May 24, 2013, at 10:34 AM, Morgan Segalis &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


&lt;/pre&gt;</description>
    <dc:creator>Jesper Louis Andersen</dc:creator>
    <dc:date>2013-05-24T11:17:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68586">
    <title>Re: Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68586</link>
    <description>&lt;pre&gt;

On May 24, 2013, at 10:28 AM, Max Bourinov &amp;lt;bourinov&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


Is that 100 * 1000 * 1000 messages per second or 100 messages per second?

RabbitMQ should easily be able to handle the latter load without much trouble. I have built a gen_server as a middle-man for RabbitMQ which handles the request/reply toward RMQ more or less like your approach and I can easily do 6000 messages per second with this setup and very little to no tuning. I don't know where the limit to that solution is, but there is a one-core bottleneck in the gen_server.

100 million messages is a different question however. Given the average message size, you are at 400 megabytes per second and hence you need 4 Gigabit of bandwidth to even hope hitting target. Apart from that, I don't think RMQ can handle that amount of load. You may need something else entirely to handle that.

Jesper Louis Andersen
  Erlang Solutions Ltd., Copenhagen

&lt;/pre&gt;</description>
    <dc:creator>Jesper Louis Andersen</dc:creator>
    <dc:date>2013-05-24T11:15:25</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68585">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68585</link>
    <description>&lt;pre&gt;It "freezes"? So it hasn't crashed at all.  In that case you just need to
be more patient and wait for it to either crash, and leave a crash dump, or
output to etop. Possibly setting process priorities would help. Give the
suspicious ones low priority.
If it's CPU resources which are being depleted you would want to observe
which have the most reductions. Use stop to order by reductions and see
who's the busiest.

Another way would be to run a debug emulator and interrupt  it while it's
frozen. Then inspect the backtrace to see what it has been doing.
On May 24, 2013 1:43 PM, "Morgan Segalis" &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Vance Shipley</dc:creator>
    <dc:date>2013-05-24T09:27:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68584">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68584</link>
    <description>&lt;pre&gt;Have you set the ERL_CRASH_DUMP_SECONDS environment variable?:
   It won't create one unless you set it to a positive value. Set it to 60
or more to be sure it completes.
 On May 24, 2013 1:43 PM, "Morgan Segalis" &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Vance Shipley</dc:creator>
    <dc:date>2013-05-24T09:05:43</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68583">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68583</link>
    <description>&lt;pre&gt;Indeed the list of apps is simple, basically this is either ssl, emysql or your integration layer.

If you read a lot of data from mysql then that code might leak a memory by keeping ref to huge binaries. 
E.g. you you do select * from xxx then that data is returned as set of binaries. 
Whole binary hands in memory even if a first row is used. This is a one way to treat binaries received from somewhere: 

case binary:referenced_byte_size(X) of
   Large when Large &amp;gt; 2 * byte_size(X) -&amp;gt; 
      binary:copy(X);
   _ -&amp;gt;
      X
end

as long as I see emysql does not use binary:copy anywhere but of course they might dereference them in other way around.
If you could monitor a erlang:memory(binary) over a time then it might reveal the case.

BTW, is this specific to R16 or other release if so then some glitches at ssl?

- Dmitry

On May 24, 2013, at 11:34 AM, Morgan Segalis &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


&lt;/pre&gt;</description>
    <dc:creator>Dmitry Kolesnikov</dc:creator>
    <dc:date>2013-05-24T09:06:03</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68582">
    <title>Re: R14B04 and OpenSSL 1.0.1c</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68582</link>
    <description>&lt;pre&gt;in erts/configure.in there is a section:

openbsd*)
                DED_LD="$CC"

DED_LD_FLAG_RUNTIME_LIBRARY_PATH="$CFLAG_RUNTIME_LIBRARY_PATH"
                DED_LDFLAGS="-shared"
        ;;

Spoke with guys on the misc&amp;lt; at &amp;gt;openbsd.org maillist and they told me to run
autoreconf, to regenerate configure from configure.in .

And indeed that did the trick and now is working fine.

There is no need to specify :
DED_LDFLAGS="-shared /usr/lib/crtbeginS.o /usr/lib/crtendS.o"
because this generates conflict on symbol '__guard_local'


Based on discussions in this topic and in misc&amp;lt; at &amp;gt;openbsd.org maillist here is
a small recipe for those who need to compile erlang R14B04 from sources on
OpenBSD 5.3 amd64:

1. cd otp_src_R14B04
2. apply the patches founded in directory /usr/ports/lang/erlang/patches/
3. $ autoreconf
4. compile and install as usual

Thank you for your help,

Bogdan


On Thu, May 23, 2013 at 11:50 PM, Stanislav Sedov &amp;lt;stas&amp;lt; at &amp;gt;freebsd.org&amp;gt; wrote:

&lt;/pre&gt;</description>
    <dc:creator>Bogdan Andu</dc:creator>
    <dc:date>2013-05-24T08:48:22</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68581">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68581</link>
    <description>&lt;pre&gt;Thanks ! 

I'll try that…

will keep you posted.

Le 24 mai 2013 à 10:30, masked.prize&amp;lt; at &amp;gt;gmail.com a écrit :


&lt;/pre&gt;</description>
    <dc:creator>Morgan Segalis</dc:creator>
    <dc:date>2013-05-24T08:35:48</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68580">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68580</link>
    <description>&lt;pre&gt;Thank you, I'll look into it.

Heres what application:which_application() gives me : 

[{emysql,"Emysql - Erlang MySQL driver","0.2"},
 {ssl,"Erlang/OTP SSL application","5.2.1"},
 {public_key,"Public key infrastructure","0.18"},
 {crypto,"CRYPTO version 2","2.3"},
 {stdlib,"ERTS  CXC 138 10","1.19.1"},
 {kernel,"ERTS  CXC 138 10","2.16.1"}]

nothing fancy has you can see...

Le 24 mai 2013 à 10:31, Dmitry Kolesnikov &amp;lt;dmkolesnikov&amp;lt; at &amp;gt;gmail.com&amp;gt; a écrit :


&lt;/pre&gt;</description>
    <dc:creator>Morgan Segalis</dc:creator>
    <dc:date>2013-05-24T08:34:37</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68579">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68579</link>
    <description>&lt;pre&gt;Hello,

I am not aware of a single flag to limit the memory like in Java.
You can try to configure memory allocation 
http://www.erlang.org/doc/man/erts_alloc.html 

One of the freeze reason might be a huge crash_dump.
See the flags at bottom of page how to tune its behaviour 
http://www.erlang.org/doc/man/erl.html

If you switch off a swap it helps to observe OOM.

Would you share to the list app you running applications?
application:which_applications()


- Dmitry


On May 24, 2013, at 11:13 AM, Morgan Segalis &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


&lt;/pre&gt;</description>
    <dc:creator>Dmitry Kolesnikov</dc:creator>
    <dc:date>2013-05-24T08:31:17</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68578">
    <title>Rabbit under small load</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68578</link>
    <description>&lt;pre&gt;Hello Dear Erlangers!

I have about 3000 erlang-processes which should send messages to AMQP-queue
of destination and receive replies from it.

The message rate at the moment is about 100 M/s
Average message size: 4 Kb

At the moment I have one locally registered gen_server that does all
communication with RabbitMQ. It consumes messages and routes them
to corresponding worker processes (via gproc). When worker process need to
send something, it cast message to RabbitMQ process via local name.  With
this approach I see some problems with message consumption speed.

What is the right way to interact with RabbitMQ server in Erlang
code? Should it be more consumer processes?

Best regards,
Max
&lt;/pre&gt;</description>
    <dc:creator>Max Bourinov</dc:creator>
    <dc:date>2013-05-24T08:28:54</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68577">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68577</link>
    <description>&lt;pre&gt;
You could use ulimit -v perhaps, I never got ulimit to work right with
resident memory.

A+
Dave
&lt;/pre&gt;</description>
    <dc:creator>Dave Cottlehuber</dc:creator>
    <dc:date>2013-05-24T08:17:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68576">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68576</link>
    <description>&lt;pre&gt;The problem is that the VM freezes completely, it does not generate a crash dump

Is there a way to limit the memory that a VM can allocate, so the server is not overwhelmed in order to create a crash dump ?

Le 24 mai 2013 à 02:00, Vance Shipley &amp;lt;vances&amp;lt; at &amp;gt;motivity.ca&amp;gt; a écrit :


&lt;/pre&gt;</description>
    <dc:creator>Morgan Segalis</dc:creator>
    <dc:date>2013-05-24T08:13:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68575">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68575</link>
    <description>&lt;pre&gt;Yeah you got that right ! leaking at a huge rate at some point !

- The number of Fd - I don't get close to the max
# cat /proc/sys/fs/file-nr
3264    0       6455368

- On the production server there is only the erlang node, no other service…
The beam.smp was through the roof at 300% CPU and 97% RAM
The weird thing is that it got there in a second, I was looking at it when it happens.

- It has happened with 2000 connections, 4000 connections, and 10000 connections… 5 min after start, 5hours after start.

I really can't find a pattern here…and I'm becoming a little desperate.

Thank you for your help again.

Morgan.

Le 23 mai 2013 à 23:20, Dmitry Kolesnikov &amp;lt;dmkolesnikov&amp;lt; at &amp;gt;gmail.com&amp;gt; a écrit :


&lt;/pre&gt;</description>
    <dc:creator>Morgan Segalis</dc:creator>
    <dc:date>2013-05-23T21:30:10</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68574">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68574</link>
    <description>&lt;pre&gt;You system definitely leaking some resources :-/
 - Check number of used FD(s) may be you exceeded limit there 
 - What was overall system memory / cpu utilisation before crash?
 - Check how many connections you got before crash, may be you can reproduce it at dev

- Dmitry

On May 24, 2013, at 12:13 AM, Morgan Segalis &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; wrote:


&lt;/pre&gt;</description>
    <dc:creator>Dmitry Kolesnikov</dc:creator>
    <dc:date>2013-05-23T21:20:30</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68573">
    <title>Re: Investigate an infinite loop on productionservers</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68573</link>
    <description>&lt;pre&gt;Ok, it finally got into the infinite loop…

And of course, the node on which I was running etop could not give me anymore since it got disconnected from the production node.

So back to square one… no way to investigate correctly so far :-/

Morgan.

Le 23 mai 2013 à 16:34, Morgan Segalis &amp;lt;msegalis&amp;lt; at &amp;gt;gmail.com&amp;gt; a écrit :


&lt;/pre&gt;</description>
    <dc:creator>Morgan Segalis</dc:creator>
    <dc:date>2013-05-23T21:13:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68572">
    <title>Re: R14B04 and OpenSSL 1.0.1c</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68572</link>
    <description>&lt;pre&gt;

Did you try to link agains libcrtendS.o as well like openbsd guys do for CDE?
Also, you need to make sure that crypto.o linking actually uses these flags you
changes in erts/configure.in (also, btw, you need to rebuild configure if you
changes configure.in).

I don't have openbsd installed anywhere, so cannot provide more detailed help,
unfortunately.  I'd recommend you to play with the linking flags for crypto.o:
log the entire build, find where it links crypto.o and use the same command
from the shell.  It will be easier to try different flags combinations that
way.

--
ST4096-RIPE



&lt;/pre&gt;</description>
    <dc:creator>Stanislav Sedov</dc:creator>
    <dc:date>2013-05-23T20:50:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.erlang.general/68571">
    <title>Re: "New" vs. "old" console behavior: bug or feature?</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.erlang.general/68571</link>
    <description>&lt;pre&gt;I'm deploying some of erlang servers with capistrano, so I had to add:

default_run_options[:pty] = true

in deploy.rb to enable everything working as usual.

It really looks like a black magic for me: why does erlang behaviour 
differs if it is ssh or ssh -t =(

&lt;/pre&gt;</description>
    <dc:creator>Max Lapshin</dc:creator>
    <dc:date>2013-05-23T20:25:55</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.erlang.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.erlang.general</link>
  </textinput>
</rdf:RDF>
