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>
Moshe L
  • 113
  • 3

1 Answers1

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.

TBR
  • 200
  • 5