Winamp & Shoutcast Forums

Winamp & Shoutcast Forums (http://forums.winamp.com/index.php)
-   Shoutcast Technical Support (http://forums.winamp.com/forumdisplay.php?f=86)
-   -   shoutcast 2.5.5 how many listeners can the service host (http://forums.winamp.com/showthread.php?t=451668)

wptacek 7th September 2017 10:49

shoutcast 2.5.5 how many listeners can the service host
 
Hi,

Has the Performance Problem with listener Peaks been fixed in the shoutcast 2.5.5 Release?
There have previous Reports of stability issues when the Service hosts several thousand listeners

We host around a dozen Shoutcast Radio Stations in our data centers.
Each Service still runs the old Shoutcast 1.9 with listener Peaks up to 15000 users!

If we upgrade to 2.5.5 will the shoutcast Service still be able to host this number of users.
Has anyone got listener Peak test results according the latest release?

We are committed to our Clients to avoid user disruptions in our live Streaming Service.
What do you suggest?

Kind regards
wolfgang

dopelabs 9th September 2017 18:23

you can always fire up an instance on a test server and load test it locally. all you need to do is open terminal and type:
code:
$ curl -s http://127.0.0.1:8000/path > /dev/null
15,000 times. ;-)

or use the local machine, and a handful of other machines and put that command in a script that will spawn the processes in a loop until you have the desired number of connections. weeeee

neralex 9th September 2017 20:55

Quote:

Originally Posted by dopelabs (Post 3141214)
15,000 times. ;-)

After the whole day of pressing enter I really need a beer...

dopelabs 10th September 2017 01:09

this is what i use for load testing.

it will spawn curl <max> times randomly across the first <sids> sid's and continue to spawn curl as older processes stop when they reach <duration> run time.

*note that if the <delay> is set slower than the amount of time it will take to spawn <max> processes, it will never reach <max> and just continue to spawn processes forever.

control-c to stop then then killall curl (understanding that killall will 'killall' of the current users processes that match 'curl')

code:

#!/bin/bash

# number of stream id's to distribute the load across
sids="4"

# max concurrent curl processes
max="50"

# how long to stay connected (in seconds) (1 hour)
duration="3600"

# how long to sleep between each curl, can be decimal (0.1) (1/10th of a second)
delay="0.1"

# host/ip and to load test
host="http://127.0.0.1"

# port DNAS is running on
port="8000"

###################
## END CONFIGURATION ##
###################

while /bin/true
do
count=$(pgrep -c curl | grep -v grep)
while [ $count -le $max ]
do
RANGE0=$(($sids+1))
sid=$RANDOM
let "sid %=$RANGE0"
curl -o /dev/null -m $duration -s "$host:$port/stream/$sid/;" &
echo "$host:$port/stream/$sid/; Connected for $duration seconds. $count running."
[ "$delay" != "" ] && sleep $delay
count=$(pgrep -c curl | grep -v grep)
done
done



All times are GMT. The time now is 14:57.

Copyright © 1999 - 2010 Nullsoft. All Rights Reserved.