Jump to content

Load balancing for Emby


Stalin

Recommended Posts

Redundancy is for reliability (the ability to fail over to a backup if the primary isn't available).  Do you really mean a distributed system of transcoding servers instead?

 

If so, we have discussed this a couple times internally.  Its possible but not something on our short list by any means.

 

If you really mean redundancy, you can pretty much do that now by just having multiple servers on your network and letting the app find the one that is available.

Link to comment
Share on other sites

Redundancy is for reliability (the ability to fail over to a backup if the primary isn't available).  Do you really mean a distributed system of transcoding servers instead?

 

If so, we have discussed this a couple times internally.  Its possible but not something on our short list by any means.

 

If you really mean redundancy, you can pretty much do that now by just having multiple servers on your network and letting the app find the one that is available.

I guess it would be a distributed system of transcoding servers. What I meant was for it to use multiple servers at once so each user streaming would pull from a different server, or maybe even pulling from different nic cards on a server. (Which I hope will make streaming better/faster).

Edited by Stalin
Link to comment
Share on other sites

  • 7 months later...
MSattler

I guess it would be a distributed system of transcoding servers. What I meant was for it to use multiple servers at once so each user streaming would pull from a different server, or maybe even pulling from different nic cards on a server. (Which I hope will make streaming better/faster).

 

@@ebr, as I am sitting here with my 150/150 Fios connection and have a couple of family members on, I am thinking about this again.  I think distributing the transcoding load could be a lot of work.  Would it be simpler if we just found and easier way to sync the watched content?  In reality, we could use some third party basic load balancing application in front of this <I can certainly look for one>, and then have it load balance between users.  Heck I can have some users hit one server, and some another.  The bigger issue is syncing the watched folders and such.

Link to comment
Share on other sites

gardar

Could this be of any help?

https://github.com/sportarchive/CloudTranscode

 

 

 

To sync watched content, one could use two (or more) seperate installations of Emby and then use Trakt to sync the watched stats.

 

But it would definately be interesting if it would be possible to sync watched stats with Emby Connect, that way the user would see his watched stats on any server he's connected to.

Link to comment
Share on other sites

trusselo

cloud computing, server teaming and load balancing are the type of coding and technology big business pays big money for.

 

For Emby to focus on this would be rather non-beneficial for the few that would use it and would be harder to "get right", than the more logical and easier solution for those few users.

 

You want to team and load balance servers.

Start by using server hardware and server Operating systems

 

I picked up a great 4 year old 2x4core xenon processor rack server for under 200$ 

and it came with 2x 1-port 4GB fibre Host Bus Adapter cards (needed for linking servers)

 

Windows server when setup correctly can create server clusters that do all the things you need without changing emby.

 

Windows server can be installed and used for free if you are "learning" using it.. Microsoft tech net download.

 

Im sure linux server has the same options, for those that prefer that route. 

 

If you want your server to act like a server,

BUILD A SERVER.

  • Like 4
Link to comment
Share on other sites

MSattler

cloud computing, server teaming and load balancing are the type of coding and technology big business pays big money for.

 

For Emby to focus on this would be rather non-beneficial for the few that would use it and would be harder to "get right", than the more logical and easier solution for those few users.

 

You want to team and load balance servers.

Start by using server hardware and server Operating systems

 

I picked up a great 4 year old 2x4core xenon processor rack server for under 200$ 

and it came with 2x 1-port 4GB fibre Host Bus Adapter cards (needed for linking servers)

 

Windows server when setup correctly can create server clusters that do all the things you need without changing emby.

 

Windows server can be installed and used for free if you are "learning" using it.. Microsoft tech net download.

 

Im sure linux server has the same options, for those that prefer that route. 

 

If you want your server to act like a server,

BUILD A SERVER.

 

So... first of I think you completely under-estimate who you are speaking to here, and I don't think you fully understand the technology.  I am running servers.  I am running a 2 node ESXi HA Cluster, with backend SAN storage, and my Emby Virtual Machine has the ability to failover.  And by no means am I the only one doing it.

 

How many users do you have on your system?  How many concurrent users?  I can at times have 5-6 family members in my home, or externally using my server.  What this means is many times there are multiple streams happening at the same time.  While I have enough bandwidth for external users, the limitation here is the ability of the server to transcode.  My Emby server right now has 12 cores assigned, and 14GB of memory, and while it is holding up now, what happens when 4k comes along?  The ability to transcode is going to be hamstrung, unless we have a solution in place that is forward thinking, instead of just hoping everyone stays at 1080p content.

 

Again, you make a quick judgement and tell people to use servers, some of us are.   I've been in the Industry for 20 years, so for you to simply assume that everyone here is a beginner is a rush to judgement.  While Windows clustering is great, application designed for Windows Clustering <which Emby is NOT>, does not provide load balancing, it provides High Availability <Which I already have through an HA ESXi cluster>.   Until we have the ability to have one backend database for Emby, we cannot go to a Active/Active scenario, without having playback status, watched status, and identical profiles mucked up across multiple emby servers.

 

Windows Server cannot be installed for free long term, it is a 180 day license.  Now I don't know about you, but the WAF isn't going to be very high when every 180 days you need to rebuild your Operating System and start fresh.  And why use Server 2008/2012?  Since Emby is not cluster aware, there is no point in running Windows Server.   You are better of virtualizing your Emby server, and picking up HA through a ESXi cluster, since you can then virtualize other systems, such as a Windows Server to actually learn on and blow away every 180 days.

 

And to close it out, while I'm sure your Xeon server was a great deal, there was a newer xeon, brand new, 4GB of memory on sale for $275 on slickdeals =)

Edited by MSattler
Link to comment
Share on other sites

MSattler

Could this be of any help?

https://github.com/sportarchive/CloudTranscode

 

 

 

To sync watched content, one could use two (or more) seperate installations of Emby and then use Trakt to sync the watched stats.

 

But it would definately be interesting if it would be possible to sync watched stats with Emby Connect, that way the user would see his watched stats on any server he's connected to.

 

While this would covered the watched status, I don't believe it would give us resume capability across multiple servers.

Link to comment
Share on other sites

trusselo

So... first of I think you completely under-estimate who you are speaking to here, and I don't think you fully understand the technology.  I am running servers.  I am running a 2 node ESXi HA Cluster, with backend SAN storage, and my Emby Virtual Machine has the ability to failover.  And by no means am I the only one doing it.

 

How many users do you have on your system?  How many concurrent users?  I can at times have 5-6 family members in my home, or externally using my server.  What this means is many times there are multiple streams happening at the same time.  While I have enough bandwidth for external users, the limitation here is the ability of the server to transcode.  My Emby server right now has 12 cores assigned, and 14GB of memory, and while it is holding up now, what happens when 4k comes along?  The ability to transcode is going to be hamstrung, unless we have a solution in place that is forward thinking, instead of just hoping everyone stays at 1080p content.

 

Again, you make a quick judgement and tell people to use servers, some of us are.   I've been in the Industry for 20 years, so for you to simply assume that everyone here is a beginner is a rush to judgement.  While Windows clustering is great, application designed for Windows Clustering <which Emby is NOT>, does not provide load balancing, it provides High Availability <Which I already have through an HA ESXi cluster>.   Until we have the ability to have one backend database for Emby, we cannot go to a Active/Active scenario, without having playback status, watched status, and identical profiles mucked up across multiple emby servers.

 

Windows Server cannot be installed for free long term, it is a 180 day license.  Now I don't know about you, but the WAF isn't going to be very high when every 180 days you need to rebuild your Operating System and start fresh.  And why use Server 2008/2012?  Since Emby is not cluster aware, there is no point in running Windows Server.   You are better of virtualizing your Emby server, and picking up HA through a ESXi cluster, since you can then virtualize other systems, such as a Windows Server to actually learn on and blow away every 180 days.

 

And to close it out, while I'm sure your Xeon server was a great deal, there was a newer xeon, brand new, 4GB of memory on sale for $275 on slickdeals =)

I think you completely mis-understood my point and the point of the thread.

 

the thread wants emby to support "redundancy" and redundancy is for fail-over not more-power

 

congratulations on your server and all your users. i hope to get there myself someday.

 

your "argument" for why "I'm wrong" is that emby running on a single machine currently can max out on your 12 core system and 4k looks like a bigger bottleneck coming down the line.

 

once again "adding redundancy to emby" wont fix that.  clustering the servers for combined power would, clustering for fail-over, won't, thats redundancy again.

 

#1 embys current transcoding is getting better everyday and is by no means "perfect" right now.  It's just awesome enough for the community driven, *FREE* project that it currently is.

#2 4k codecs and transcoding will get much better by the time its needed.

 

Sure, windows server for "students" must be re-installed every 180 days.... technically.

But linux server is free (for home learning use) and does things too.

 

not sure what you are arguing...

 

the ability for emby server to run on multiple machines on the same network and load balance the work would be a beneficial feature but probably not high priority.  

 

But emby is open source feel free to put your skills to use....

Edited by trusselo
Link to comment
Share on other sites

wiretap

I think the best solution for transcoding would be to use hardware acceleration. Multiple graphics cards, Intel Phi, Nvidia Tesla, etc.. could be tasked with a pretty heavy workload. It looks like we have a pseudo-working option already. With some refinement, it would be great. http://emby.media/community/index.php?/topic/10723-gpu-transcoding-intel-quicksync-and-nvidia-nvenc/

Edited by wiretap
Link to comment
Share on other sites

I changed the topic title to avoid further confusion as the question is really about load balancing, not redundancy.

  • Like 1
Link to comment
Share on other sites

MSattler

I think you completely mis-understood my point and the point of the thread.

 

the thread wants emby to support "redundancy" and redundancy is for fail-over not more-power

 

congratulations on your server and all your users. i hope to get there myself someday.

 

your "argument" for why "I'm wrong" is that emby running on a single machine currently can max out on your 12 core system and 4k looks like a bigger bottleneck coming down the line.

 

once again "adding redundancy to emby" wont fix that.  clustering the servers for combined power would, clustering for fail-over, won't, thats redundancy again.

 

#1 embys current transcoding is getting better everyday and is by no means "perfect" right now.  It's just awesome enough for the community driven, *FREE* project that it currently is.

#2 4k codecs and transcoding will get much better by the time its needed.

 

Sure, windows server for "students" must be re-installed every 180 days.... technically.

But linux server is free (for home learning use) and does things too.

 

not sure what you are arguing...

 

the ability for emby server to run on multiple machines on the same network and load balance the work would be a beneficial feature but probably not high priority.  

 

But emby is open source feel free to put your skills to use....

 

If you read what the OP is actually requesting, he wants load balancing, not redundancy.  He originally used the wrong title, but if you read his actual request he wants load balancing.  

 

As for 4k streaming, I really could use it now, as I have a Go-Pro that I record in 4k, so for all intent purposes 4k is here, with more coming in the next 3-4 months with the release of BluRay 4k.

 

What I was arguing was that the user per his request wants load balancing, and none of the options you provided give him that.  The proper way to load balance this would be to allow for emby to use a backend database server that can be on a separate host.  Then multiple hosts can use the same backend database, and your watched/resume statuses are completely synced.

Link to comment
Share on other sites

  • 2 years later...
embywell

Is there anything new on this topic?

I've recently set up a linux box for my mediaserver, and since plex continues to "fix" things that are not broken, the consideration of emby grows stronger every minute.
The main reason why I set up linux was because I wanted to take advantage of the distributed transcoder script someone wrote, but it seems that is also one of the things plex likes to "fix" with its updates.

I'll have two servers with somewhat powerful cpu's for transcoding, and I want to benefit from them both when the load is high on the main server.
So switching to emby now would be pointless if I can't take advantage of both servers.

Link to comment
Share on other sites

I can't offer an ETA, sorry, but we are actively monitoring it for community demand and feedback. Thanks !

Link to comment
Share on other sites

  • 1 month later...
fathibn

I have setup an Emby server, primarly for tests but I hope to be able to use it in production, for offering emtertainmenet on waiting rooms of railway stations and on board. I have also setup a webcache on front of Emby to pace with workloads. So dynamic content is generated and served by Emby, while videos are cached and served by the webcache sitting on front of Emby. It worked for me and I would recommend it as a viable solution. It also gave some additionnal features, like disabling the password change link, as I used a single user for the demo and wouldn't have a smart user change the password locking out all other people.

 

In my production setup, I will need to replicate configs (channels, categories, users, ...) between a master server and as many clones as train cars we have.

To achieve this I am thinking of three solutions:

1) Sync Emby folders content and let Emby discover the new content and update its portal pages accordingly (the easiest solution but replicates content only),

2) Put Emby as a virtual machine and sync virtual machines with a master Emby server on which we do all transcoding (includes content, config, ..., but sessions and viewing history will be cleared on each vm sync with those of the master Emby)

3) Find a way to create anonymous user and disable navigation history

4) Adopt a better solution from the community.

Link to comment
Share on other sites

fathibn

Of course you can put as many webcaches on front of Emby as you need, in my case varnish webcache, and this will give you load balancing and some failover (adjust grace period in your varnish config accordingly to continue serving content while Emby is retarting or unavailable for some time).

To distribute connexions between the webcaches, it use a load balancer, namely Pound which also offers SSL encryption/decryption, and does dynamic load balancing in case your webcaches are different in terms of hardware and performance.

Link to comment
Share on other sites

Scott D
Load balancing would be a great addition for those of us that are burdened by data caps on our internet connections.  If you don't have a cap now, be prepared.  It seems to be all the rage among the proivders for tapping a bit deeper into your wallet.
 
I for one have a few internet connections that could be used a bit more than they are now: 
1.Vacation cabin with full time internet that doesn't come anywhere close to the cap.
2. Parents home that also uses nowhere near the allowable limit.
3. Home connection is a constant struggle to remain under the limit.
 
Even if the library was split (movies, shows, home movies) among these three connections, the utilization of the bandwidth and CPU would be spread among the connections.
 
So in addition to CPU utilization balancing, the balancing of bandwidth would be a very welcome feature.
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...