IDEA: Plex Cluster (Distributed transcoding)

Hey everybody. I have a background in IT Networking and Mil-Spec Cryptology with a Top Secret SCI clearance. I’m a former 3C2X1 in the USAF. Pretty much, anything that deals with digital and analog communication and encryption, I’ve done it. I’m more of a hardware person than a software person. I can fusion splice and terminate 1,000 strands of single-mode and multi-mode optical fiber with a 0.01dB signal loss, but I can’t program to save my life. I’ve configured top-end Cisco Routers and Layer-3 switches, but that’s not exactly programming. How many people in here have tested the signal attenuation between two SM-Fiber to UTP transceivers in the middle-east, but between these transceivers were 10 different junction boxes, 5 miles of sand dunes and 130 degrees dry heat, with bad patch connections? Yeah, that sucks too.

Anyways, here’s my personal systems: I have an 8-core FX8350 overclocked to 4.2ghz with 16GB DDR3 1600Mhz RAM. My OS hard drive is a SATAIII 256GB SSD. Storage drive is a 4TB USB 3.0 WD My Book. Performance-wise it can stream 1080p video to five different devices unhindered, but that’s in “original” format. While streaming on the LAN via gigabit interface using “original” format, I use about 25% CPU and 2% bandwidth.

  1. Stream 1: connection type: localhost, AMD FX8350 (4.2Ghz), 16GB DDR3 1600Mhz RAM, 256GB SSD, 4TB USB 3.0 WD My Book.
  2. Stream 2: Dell 15R Special Edition Core-i7 3632QM (2.20Ghz), 16GB DDR3 1600Mhz RAM, 256GB SSD Drive, connection type: wired gigabit, stream type: original
  3. Stream 3: Samsung Galaxy Mega 6.3, Dual-core 1.7 GHz Krait 300, 1.5GB RAM, 16GB SSD, 128GB SDXC flash card, connection type: 802.11n 150Mb
  4. Stream 4: HP D7800 USDT, Core 2 Duo 1.86Ghz, 8GB DDR2 800Mhz RAM, 128GB SSD, connection type: wired gigabit
  5. Stream 5: Kyocera Hydro Icon, Quad-core, 1.2Ghz, ARM Cortex-A7, 1.5GB RAM, 16GB SSD, connection type: 802.11n 150Mb
  6. Other systems not included in the stream testing:
    6.1: L5430 Quad-core Xeon 2.66Ghz (overclocked to 3.0Ghz) modded to fit on an LGA775 mobo with DDR3 RAM, 8GB DDR3 1333Mhz, previous CPU on that mobo was a Q6600 2.4Ghz Core 2 Quad.
    6.2: Dell laptop Core i3 (dual-core w/hyperthreading), 6GB DDR3 1600Mhz RAM.

When I decided to put all these streams into 720p transcode, the cpu remains at 100% and 45 degrees Celsius (idle 32 degrees Celsius). It begins to stutter even with 3 streams transcoding at the same time. I have a sister that lives in a neighbor city and another that lives in Los Angelos and they both complained it was stuttering bad. That’s why this clustering of computers idea is great. Using computers I already have instead buying new hardware and forking out more money. What is it nowadays for an 18-core Xeon with hyperthreading? About $5K just for the CPU itself? And yes, that’s a 23K passmark CPU.

I can configure my network as the following:

  1. Core i3 laptop as the PMS frontend/master node. It only has 1 gigabit NIC, but I can add a dual gigabit port USB 3.0 adapter to add more network interfaces if needed. I’ve tested the raw throughput between USB 3.0 interfaces using a USB 3.0 bridge (lookup: J5Create JUC500 Wormhole Switch) and got between 1.0-1.2gbps raw throughput.
  2. FX8350 4.2Ghz 8-core (9k passmark) + Core i7 3632QM 2.2Ghz (7k passmark) + L5430 Xeon 2.66Ghz (4k passmark) + Cheap TBB(to be built) $300 node for my spare Core 2 Quad 2.44Ghz (3k passmark) = 23k passmark. :smiley:

Have a 23k passmark cluster-node without spending $5,000. lol

The 1 master node + 4 slave nodes will have its own dedicated switch powered by DD-WRT. I have a Netgear WNR3500 v2 that I’ve converted into a full-fledged switch using DD-WRT. All 5 ports are now LAN ports, where with the original firmware it was 4 LAN + 1 WAN.

As far as power, the core i3 laptop uses 60watts max, dell core i7 uses 90 watts max, fx8350 uses 300watts idle and 400-500watts under load (it has a 725 watt PSU). That Xeon L5430 is a 50watt cpu (as opposed to the core 2 quad Q6600 2.4Ghz which is 90watts TDP), so the Xeon actually runs cooler and uses less electricity. Estimated around 75watts idle and 150watts full load. The Core 2 Quad system will run 40 watts more at 190 watts full load. Guesstimating 990 watts total out of all 5 nodes under full load at 23k passmark.

I am also in need of clustering option. I am now having to upgrade my already Xeon E5-24xx to Dual Xeon E5-26xxv4S. It’s getting expensive on a single platform.

Here’s my even better justification for this: plex media server running on low end hardware that uses little power, but with the ability to WoL a more powerful system (or 2 or 100 or whatever) that can handle the stream when it’s called for. A raspberry pi can run PMS and uses basically no electricity. :slight_smile:

Also interested in this too!

Hi all

I know this thread is very old, but it has some good substance to it.

I have PMS running on a raspberry Pi 3, and wish to create a Pi cluster for PMS. Why I here you ask. Because I can, and they are cheap. And my single PMS Pi server works fine on the local network, but it is somewhat under powered over the Internet.

My desired cluster has 6 x Pi 3 devices. Node0 (Master) has my storage array attached and distributed as NFS so all nodes can access it.

Here’s the bit I don’t know about.
How do I configure ALL of the slave nodes?
Do they have to have PMS installed on each of them?
Or can I simply run some kind of distributed computing across all the nodes to make use of their CPUs and have a single instance of PMS?

I’ve looked at PiBramble but this doesn’t seem to suite my need.

I’m also looking at Ansible to deploy everything on the cluster and to keep it up to date.

As mentioned above, my current configuration only uses one of the Pi 3 devices as a stand alone server. But all of the hardware is in place and ready to use.

Any comments would be most helpful.

Regards

Fred

@cjpared,

This is not a cluster at all. This is a nice setup with several plex servers but no distributed transcoding…

Lots of people have a similar setup. What we are asking for is: One Plex server that offloads transcoding automatically to any of a number of standby servers with CPU to spare.

kermur

@cjparad said:
PLEX

Cluster

I have built my own Plex Cluster in a sense. I have connected My Public Domain Name to My Main PLEX Server which is the First Server in my Cluster. I have a Static IP Address through my Business Gateway with an 80MBPS Download and a 20MBPS Upload. I have a Block of Five each other Address to each other PLEX Server is a Subdomain of that Address. Each with their own Domain Web Login.

Each Server in Conjunction with my PLEX PASS is managed through 1 PLEX Web Interface. On a PLEX enabled device it just displays the media from all the Servers.

It is fairly simple and straight forward. By doing this allows Multiple Streams Per PLEX Server. This takes a huge LOAD Off of the system opposed to having 1 Server handle all the Transcoding.

It’s simple, Godaddy Hosts my  Domain Name: myplexhome.com, My Cable Modem/Gateway is Public Static IP’s so there is no Port Forwarding. At the Godaddy side I Forward my Domain Name to the IP Adress:32400/web of my First PLEX Server. I create a Sub Domain For Each of the Other PLEX Servers, such as: AMD, AMD2, OPTIPLEX, PARASERV. Which I can Log in Directly to The PLEX Server or manage them all through the main Domain Name amd.myplexhome.com, amd2.myplexhome.com, optiplex.myplexhome.com, paraserv.myplexhome.com or just myplexhome.com. Secure them with signing in with your PLEX Account and then your PIN that you create on the Main PLEX Server. From there Create User Accounts for Friends and Family or share Media with Other PLEX Users.

Here is a simple Diagram Below.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.