Page 1 of 1

Can Subsonic support a great amount of simultaneous users?

PostPosted: Sun Jun 05, 2011 9:51 pm
by cfmoro
Hi all,

First of all congratulations to the whole development team for this great software.
I would like to ask if Subsonic can support streaming to a great amount of simultaneous users (in order of thousands or +). It would be the case of a service similar to grooveshark, but based on Subsonic platform. How much could the system escalate? Are there any decisive software limits or the decisive factor would be machine (hardware) and connection resources?

Keep the good work.

PostPosted: Sun Jun 05, 2011 11:37 pm
by OlYeller21
Are you actually planning on taking on such a venture? I'm hoping not as you'll undoubtedly get sued for sharing to thousands of people.

Regardless, from what I understand of the software, the issues you would face having 1k+ users would lie with your server(s) and connection. There's more to it than that but you're talking about starting something larger than your home computer and home connection would be able to handle.

PostPosted: Mon Jun 06, 2011 1:25 am
by cfmoro
Hi, OlYeller21

Thank you for your answer.

OlYeller21 wrote:Are you actually planning on taking on such a venture?


I'm interested in evaluating its technical feasibility.

It would require some modifications of Subsonic's base implementation. I list some that come to my mind:
a) A global robust database. By replacing HSQL for a standalone db server with replication and clustering capabilities (as PostgreSQL).
b) Several apache-tomcat instances connected to the central database. The number of instances (and bandwidth) would depend on the amount of users. Load balancing.
c) No on-the-fly transcoding for streaming. Maybe transcode after user uploads.
d) A global chat system, interfaced by all the instances, with diverse chatrooms.

Which other critical 'gross' technical issues could be considered?

Best regards

PostPosted: Mon Jun 06, 2011 1:41 am
by GJ51
Let's see ... 1000 users at 256kbps = 256,000kbps to 1000 different ip addresses ... what's your upload speed? What kind of router? how much ram, what cpu?

Who knows anything's possible if you have enopugh horsepower. I don't think any of us with decent hardware have ever had our systems stressed anywhere near to capacity just serving music. I'd love to see where the upper limits are and the hardware you use.

I've got about pretty solid 25 mbps upload speed so I guess you'd just about max me put at 100 users.

You'd need an upload speed of about 250Mbps. Or 10 FIOS connections using seperate connections. If you find an affordable 300Mbps upload connection, let us know. :wink:

EDIT: http://blog.tmcnet.com/blog/rich-tehran ... ocket.html

Maybe soon?

PostPosted: Mon Jun 06, 2011 3:22 pm
by martyscholes
cfmoro wrote:Hi, OlYeller21

Thank you for your answer.

OlYeller21 wrote:Are you actually planning on taking on such a venture?


I'm interested in evaluating its technical feasibility.

It would require some modifications of Subsonic's base implementation. I list some that come to my mind:
a) A global robust database. By replacing HSQL for a standalone db server with replication and clustering capabilities (as PostgreSQL).
b) Several apache-tomcat instances connected to the central database. The number of instances (and bandwidth) would depend on the amount of users. Load balancing.
c) No on-the-fly transcoding for streaming. Maybe transcode after user uploads.
d) A global chat system, interfaced by all the instances, with diverse chatrooms.

Which other critical 'gross' technical issues could be considered?

Best regards


You've got me curious. Set up a bunch of faux clients on the LAN and see which pieces of the stack begin to stumble first. From my personal use -- five relatively heavy users of audio and video -- the CPU, memory and disk usage isn't even a blip on the reports, but I have orders of magnitude fewer users.

Try it out and report back what you see.

PostPosted: Mon Jun 06, 2011 6:58 pm
by Kirk
If you're having to transcode the music, then the CPU of the system will probably be your bottleneck. If not, the bandwidth of the Internet connection will probably be the upper limit.

-Kirk

PostPosted: Tue Jun 07, 2011 11:00 pm
by lovebags
I've maxed out my server a few times with too many users but I think it might have been due to available machine memory or a subsonic memory issue rather than CPU or bandwidth.

I have had around 40 users at once on a MacPro running on 3GB RAM, Gbit connection streaming 192kbps tracks. CPU usage was around 30-40% but as more users connected, available free memory on the system reduced to near zero. However, memory usage of subsonic was around 250MB and 85 threads. The server just stopped responding to requests although subsonic didn't crash during those times. Each time it has seized up I have rebooted the machine to get it freed up again.[/i]

PostPosted: Tue Jun 07, 2011 11:34 pm
by GJ51
What is your internet upload speed?

PostPosted: Wed Jun 08, 2011 10:39 pm
by lovebags
I have about 50Mbps upload so should be well within having at least 50 users stream 192kbps files.

PostPosted: Wed Jun 08, 2011 11:35 pm
by GJ51
Should be good for about 250.

PostPosted: Thu Jun 09, 2011 2:41 am
by lovebags
Yes I theory but the real-world results didn't quite match due to the issues I had above. Would be interesting to know what the most simultaneous users anyone has ever been able to get out of a subsonic setup.