Stress Testing Plex Media Server

Thirdgen89GTA

Aka "That Focus RS Guy"
TCG Premium
Sep 19, 2010
19,401
16,024
Rockford
Real Name
Bill
So, now that the NAS is upgraded I decided to stress the HELL out of it.

https://www.youtube.com/watch?v=5mdy8bFiyzY

I got to 10 active transcodes at once. Then it started to drop out occasionally and buffer.

Simultaneously that was:

  • 300: Rise
  • Age of Adeline
  • Avatar
  • The Animatrix
  • The Amazing Spiderman 2
  • The Book of Eli.
  • The Expendables
  • The Mechanic
  • Vanishing Point
  • The Lost Boys.

8 Plex windows on the desktop, plus 1 on iPad and 1 more on iPhone. I had to stop the iphone to take this pic lol. Sorry for the mess I haven't gotten around to tidying up all the cables.

32201692150_79120c7072_o.jpg


32458685231_ccc7bc5bfa_o.jpg


I guess I'll just have to settle for being able to do 9 full 1080p transcodes simultaneously.

31767973533_76cc9a3cb5_o.jpg
 

Thirdgen89GTA

Aka "That Focus RS Guy"
TCG Premium
Sep 19, 2010
19,401
16,024
Rockford
Real Name
Bill
not quite the same thing.

You are aggregating multiple sources onto a single display.

I am asking my Plex Server to serve as many clients as it can until it breaks. The 8 movie windows is the only way I have of simulating 8 people watching a movie at the same time. The goal to was find out how many clients it could serve up at once.

Obviously pales in comparison to Netflix, Hulu, or any other streaming provider, but then again, I don't actually have the bandwith to serve that many external client. My internet connection would choke out pretty fast being the upload is only 20Mbps.

Each stream in that window was at 10-20Mbps on its own.

Netflix runs about 4-6Mbps for 1080p content, and around 12-15Mbps for 4k content.

One of the reasons for the upgrade was to allow me to up the transcoder quality settings. This would improve quality, and reduce the bit-rate needed for a given quality. But it takes exponentially more hardware to do it.

Right now the transcoder is set to "Make my CPU Hurt".
 

Thirdgen89GTA

Aka "That Focus RS Guy"
TCG Premium
Sep 19, 2010
19,401
16,024
Rockford
Real Name
Bill
I don't get what you are doing? You are sending the movies or receiving them?

On my average laptop, I get slowdown receiving 3 movies at once. Same thing or completely different?

Kind of.

What you posted in your pic was you receiving content from 9 different providers, and displaying them on the same screen.

What I was stress testing was my in-home Plex Servers ability to multi-task.

I wanted to see just how many clients the server could push a 1080p stream to. And the limit is about 8, sometimes 9 depending on the complexity of the video.

In essence, I am running my own Netflix service. The server is taking each movie, and transcoding it on the fly to the H264 format that your phone, tablet, laptop, and any other client can play in a web-browser.

No matter where I am in the world, if I have internet, I have every single movie, tv show, and music album at my fingertips. And because I have PlexPass I can sync the content in a phone compatible format to take with me where I have no internet.

So say I wanted to bring the Alien Quadrilogy with me on a flight, where they don't have internet. I could choose to sync those movies to the phone, or tablet, and Plex would automatically shrink the movie down so that it doesn't suck up all the space on my phone. For example, I keep the Alien moves in their native bluray format, so we are looking at 30-40Gigabytes per movie. Way too much for a phone. But plex can shrink it down and scale the resolution automatically to fit on the phone.

About 5m into this video the guy explains what Plex is doing for me. And why I tested the server to failure.

https://www.youtube.com/watch?v=quXrAW6gAl8
 

CntrlFreak

Regular
May 2, 2015
180
103
Uh not really, you are relying on the server to generate multiple streams but there is too much missing information, are they uni- streams? What is the profile of the stream is it set up as a VBR or fixed and what is the nitrate? Your test isn't totally valid and if you are on your own network (internal only) then the 20Mbs is irrelevant. Also Netflix uses a dash format so each time you hit play you are receiving approx 30 different profiles all unicast, but adapted to your device.
 

Thirdgen89GTA

Aka "That Focus RS Guy"
TCG Premium
Sep 19, 2010
19,401
16,024
Rockford
Real Name
Bill
Uh not really, you are relying on the server to generate multiple streams but there is too much missing information, are they uni- streams? What is the profile of the stream is it set up as a VBR or fixed and what is the nitrate? Your test isn't totally valid and if you are on your own network (internal only) then the 20Mbs is irrelevant. Also Netflix uses a dash format so each time you hit play you are receiving approx 30 different profiles all unicast, but adapted to your device.
I had a big long post.

But my test isn't valid? How so? The transcoder doesn't care about profile levels, or the source file bit-rates. What it cares about is taking each frame, and transcoding it to a new format.

The amount of CPU used to decode a file and pipe it through to the transcoder is so small as to be unmeasurable in the overall scheme of things. It might affect a measured output by 1%. Statistically insignificant.

This page explains the plex settings in relation to how it transcodes content.
https://support.plex.tv/hc/en-us/articles/200250347-Transcoder

Netflix doesn't always have to transcode content, it can send it via Direct Stream, or Direct Play.

Direct Play is sent to the client as is, and requires just about zero CPU usage.

Direct Stream is when the video and audio bitstreams are compatible with the end client, but the container format (MKV, MP4, AVI....) is not.

An example for Direct Play would be a MP4 file containing H264 video and a Dolby True-HD stream. My player would just play it out-right. Plex would send the file over the network and do nothing to it.

A Direct Stream example would be sending file in a MKV container to say an Apple TV. If the MKV file contained H264 and AAC audio, then Plex would strip the audio and video streams out of the container, then encapsulate it in side a MP4 container and send it to the Apple TV. This requires only slightly more CPU than Direct Play.

The most intensive is Transcoding. Plex can do this for both video and audio separately. It can transcode an audio stream, but leave the video stream alone. Example would be the end client doesn't support Dolby True-HD, but does support H264 video. Plex would send the video as is without changing it. However, it would downmix the audio to something the client understands. It might be AAC 5.1, or just AAC stereo. Audio doesn't realy take much power overall.

Plex could also transcode the video, but pass the audio through without change.

Plex will do the least possible to get the content to the client. But its nice because you don't have to guess at what the client can do. If they wrote a plex app for it for the device, Plex will play it on the device.

Also fwiw Plex is just a public personal CDN

Plex does not have any mirroring, or distributed caching of my content. Its not like Netflix, or other providers with multiple mirrors around the globe. It doesn't load balance.

When my single plex server is not available, the content is just plain not available.
 

CntrlFreak

Regular
May 2, 2015
180
103
Yes that was a long post, if you like I can teach you about streaming tech, after all my company make the stuff. Your using the term transcode very loosely. Plex will take a "video" file and turn it into a streaming format, MPEG just for the record. I admit, because I have not looked at it, but they will more than likely, because you have transport control, be creating a RTP stream with a slathering of RTSP. What I meant about you test I that your server is generating a uni-cast for each different stream you generate the math is simple, bitrate capable of the server divided by the bitrate of the stream = number of simultaneous streams before things get funky. But that's the bigger issue with software encoders (btw) that's what you are doing, you have to take into account the SW capabilities and well good luck.
 
Old Thread: Hello . There have been no replies in this thread for 90 days.
Content in this thread may no longer be relevant. Consider starting a new thread to get fresh replies.

Thread Info