0

I am using icecast2 (from apt-get) on Debian (or Ubunto, tested both). 8GB RAM, 4 CPU Cores, 3 streams.

The server is configured to 20K connections limit on the XML config, but when It recived a ~ 1000 connections, it hangs.

I am testing with real client, but also with curl --silent --output /dev/null http://localhost:8001/livemusic from localhost.

I tried also to run an other one manualy on port 8001, so I able to run 1000 connections more, and it hangs again.

What I need to do ?

 <limits>
    <clients>20000</clients>
    <sources>9</sources>
    <queue-size>10485760</queue-size>
    <client-timeout>30</client-timeout>
    <header-timeout>15</header-timeout>
<threadpool>30</threadpool>
    <source-timeout>10</source-timeout>
    <!-- If enabled, this will provide a burst of data when a client 
         first connects, thereby significantly reducing the startup 
         time for listeners that do substantial buffering. However,
         it also significantly increases latency between the source
         client and listening client.  For low-latency setups, you
         might want to disable this. -->
    <burst-on-connect>1</burst-on-connect>
    <!-- same as burst-on-connect, but this allows for being more
         specific on how much to burst. Most people won't need to
         change from the default 64k. Applies to all mountpoints  -->
    <burst-size>131072</burst-size>
</limits>
1

Most likely the icecast process has a low ulimit, e.g. 1024.

Adding a line like this to /etc/init.d/icecast2, right before the daemon starts, shoud work:

ulimit -n 25000

Please note that you're most likely to run out of bandwidth before anything else in case of Icecast. It's very resource efficient in most use cases.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.