as soon as I start running icescc auto dj -- with either SHOUTcast1 or Icecast the load jumps a lot higher. It's not overloaded but if I run any more it will be. WIth only SHOUTcast2 and SC_TRANS load just hangs around the zero mark.
I find this really, really hard to believe, assuming you're doing an apples-to-apples comparison. You have to make sure that:
- both tests are performed simultaneously (so there aren't any external factors affecting either test)
- sc_trans2 is transcoding local MP3 files and sourcing the server normally -- NOT REBROADCASTING A LIVE SOURCE CONNECTION!
- sc_trans2 is generating an MP3 stream, not AAC+
- both sc_trans2 and ices are sourcing just ONE mount point (remember that if you have it sourcing two mount points, it'll use double the CPU time)
- both sc_trans2 and ices are encoding at the same bit rate
Just to make sure I wasn't talking out of my ass, I decided to look into it just to make sure. I ran a comparison between ices-cc and sc_trans2 on two different servers and got the results below. This is with all autoDJs set to 128kbps 44KHz MP3, one encoder (one mount point), with "top" set to a 5-second interval. Obviously this isn't a controlled, scientific test, but I can say that it's representative of my experience with sc_trans2 and ices.
Server 1:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
14265 ccuser 20 0 232m 10m 3116 S 19.3 2.6 1:15.29 sc_trans
29381 ccuser 20 0 29160 6100 1336 R 13.4 1.5 517:35.34 ices
29375 ccuser 20 0 26136 2984 1304 S 0.3 0.7 474:09.30 ices
Server 2:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
29684 ccuser 20 0 171m 13m 3104 R 10.4 2.6 1:15.99 sc_trans
28679 ccuser 20 0 26064 2832 1640 S 10.2 0.5 4:22.43 ices
16529 ccuser 20 0 25584 2412 1628 S 0.2 0.5 113:17.08 ices
As you can see, at best I recorded a 0.2% CPU utilization difference between sc_trans and ices, and at worst I recorded a nearly 6% difference between the two (in ices' favor).
sc_trans also uses *much* more memory than ices -- on one server there is nearly a ten-fold difference in shared memory utilization (and more than double the private memory utilization) between sc_trans and ices.
I also compared disk utilization between sc_trans2 and ices using "iotop", but the results were so boring as to be irrelevant... as you'd expect, you get a periodic block read every now and again (to read MP3 content from disk) and other than that, everything remains idle at 0 KB/s.
You'll also note that there is a third ices process in each of the above, with dramatically lower CPU utilization. That's because ices is smart enough to autodetect when an MP3 file is already encoded at the correct bitrate/samplerate, and in this case, it does NOT go through the process of decoding it and then re-encoding it again -- it just uses it verbatim. So on streams where users have pre-encoded their media with the correct parameters, ices CPU utilization can actually approach 0% while doing the *exact same job* as sc_trans.
Now, back on point, the reason I take issue with My Auto DJ's comments is because I have NEVER seen a situation where sc_trans2 was actually *doing* something, yet showed near-zero CPU utilization. As best I'm aware that simply does not happen, which leads me to believe there is a flaw in his measurement technique. It's possible that My Auto DJ performed his measurements while sc_trans was rebroadcasting a live source, which is NOT an accurate comparison -- the moment you connect to sc_trans with a live source, sc_trans' CPU utilization drops dramatically.
Having said all that, I'm not hating on sc_trans2 -- sc_trans2 offers FAR more features than ices, so it may be a worthwhile tradeoff... but make your choice based on functionality, not performance, as ices' performance ranges from "on par with" to "better than" sc_trans2 in every situation I've encountered.
Steve is there a way you can run SHOUTcastv1 with SCTRANS ? I don't think the playlist scheduler will work but could it still be a option?
There's no technical reason we couldn't do that, but IMHO it's pointless -- SHOUTcast DNAS v2 is a much better product than DNAS v1 (and is more actively maintained), so it makes sense to just use DNAS v2, which is already supported in Centova Cast for use with sc_trans v2. Unless of course there is a specific reason why our client base would PREFER to use v1 over v2...?