I'd like to use a cheap VPS hosted by OVH, France (1 vCore, 2 GB RAM, 40 GB SSD NVMe, 250 Mbps unmetered) to host an icecast server which will be used for an event this month. There will be up to 500 CCUs listening to the 128 kbps audio stream.
based on my reading of this article, it seems to me that 250 Mbps should be enough to respond to the load, but i haven't got any experience in managing this kind of problem.
My reasoning is that 128kb*500CCU + 10% overhead = approx 70 Mb/s.
I'm also wondering if the 250 Mbps unmetered supplied by OVH are guaranteed, or whether the load on other services hosted by other clients using the machine could have an impact on performance. (I asked OVH already but they weren't especially helpful)
thank you for your insights! samuel
UPDATE
I have set up a load test scenario with the script described in the link above.
#!/bin/sh
#
# max concurrent curls to kick off
max=600
# how long to sleep between each curl, can be decimal 0.5
delay=1
# how long to stay connected (in seconds)
duration=1800
# url to request from
URL=<theURL>
echo "Start load test"
while /bin/true
do
count=0
while [ $count -le $max ]
do
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
curl -m $duration --silent --output /dev/null "$URL" &
[ "$delay" != "" ] && sleep $delay
let count=$count+10
echo "Added 10 clients, now at $count clients"
done
wait
done
before launching the script on VPS1 (the "client" machine), i opened a window to monitor network usage using slurm on my network interface on VPS2 (the "server" machine, where the icecast2 server is located), as such :
slurm -i eth0
i also opened a window to monitor CPU usage of icecast (on VPS2), as such :
top -p <PID OF ICECAST>
and launched the script while listening to the radio stream. Everything went fine, i didn't hear glitches, and the CPU usage (6% at 600 CCU) is very reasonable (also the network usage is much lower than what i expected, peak usage was at 17MBs), so i guess my setup passed the load test!
Thank you for your help.