Server Version#: Version 1.25.0.5246
Player Version#:IOS 7.25 and Web Version 4.66.1
OS: Rocky Linux Also Tested with CentOS Stream
I have a plex virtual machine and I have tried with 4 CPUs and 6 CPUs and 8 CPUs assigned. However when I play a movie with a high bit rate and it attempts to transcode the video for the player it does not use all the CPU. I will try to upload a screen shot using nmon on server during transcode. The play back stutters and hangs. I would expect that the cpu would be 100% if it didn’t have enough power.
I have also set it to 8 CPU and the total use of the CPUs sits about 50-55% of use.
Why is plex not using all the CPU % available? is it worth to continue to try different linux distros?
Let me move additional info here in the thread sorry for the confusion.
Additional Info It seems when I set the player to resolution under 8mbps then it plays fine but 8mps or up does not play smoothly. The CPU usage is the same no matter the player resolution selection. So it seems that the transcoding is working but it doesn’t seem to be able to transmit the data rate out. If you have a way you want me to test that connection I can but I"m pretty sure it’s 1Gbps connection LAN. Actually I’m playing the web on the OS host so it’s a software switch and I’m pretty sure it should have fast connection.
Also I get this issue on my IOS. But odd thing is that only on high bitrate 4k Lower than 60000 kbps it can transcode and play fine. And I assume the outgoing bit rate is the same on transcoded no matter the starting bit rate.
Browsers are very limited. I have an i7-8809G CPU and, in Chrome, it can’t manage more than 30 Mbps reliably without jittering all over the place.
You will see the transcoder build up an output buffer (about 2 minutes worth) before going into “sloth” mode (which is in the logs that way).
Debug logs ZIP file, capturing the playback (start – play 30 seconds - stop – wait 30 seconds - Download the ZIP file – Attach ) … and I’ll look at what’s going on.
SkyLake cannot process HEVC in hardware. You need its bigger brother (i7-7700) to decode HEVC.
You can’t get more than those 8 Mbps out of it because you’re trying to transcode HEVC. The raw CPU clock can’t keep up with the demand due to memory bus latency. HEVC must have hardware support to be viable.
In your favor – most of the distros ship with drivers for an i7-7700 (and higher).
Further in your favor - IIRC – SkyLake and Kabylake (i7-7xxx) are pin-for-pin compatible in all regards.
I ran into this same issue with QNAP (skylake vs kabylake) and swapping for the kabylake solved it.
I recommend doing the bit of research to confirm pin-for-pin compatibility and then consider your options for upgrading.
Thank you for the info. So if I understand it correctly the memory bus on that CPU can’t feed the CPU fast enough. So the CPU can’t get to 100% usage because it’s not getting the data fast enough do do any processing. I guess it’s the type of data the HEVC is that doesn’t allow the pipline to run at full 100%.
If I’m not saying that correct you can correct me. I just like to understand in somewhat normal speak terms of the issue.
I wish I could just throw more cores at the problem.
It’s a bummer when the issue is hardware. I did check and the 7700 does look like it would be compatible with my motherboard. That seems an option.
Possibly moving the plex server out of the VM on to the host OS, if I have the right graphics card could plex use that to help? I think I have seen articles about possible graphics card. I’ll have to check if I have one that could help with that transcode. I’ve always like the idea of having the plex server isolated on a VM, but probably not for any really good reasons.
Another option may be to use optimized version creation. I’m going to create another post related to optimized versions and how players interact, it might save me some testing.
This is a “work smarter” , not “work harder” problem.
HEVC was designed this way. They wanted to require hardware.
Lucky for us, the hardware exists which does it effortlessly.
My server i7-8809 (refined i7-7700 with AMD GPU as well)
HW decode of the HEVC
HW tone mapping HDR → SDR
HW encoding to H.264 at the required bitrate
about 10% CPU with audio conversion and PMS multiplexing the stream for output.
The biggest load, which is a ‘more cores’ problem is audio and subtitle burning (which I avoid whenever I can).
The i7-7xxx class can easily do 5 full HEVC → H.264 trancodes simultaneously (based on 80 Mbps inputs). You don’t run into memory issues because it’s done at such a low level we’re not starving the CPU to feed it instructions to execute. It has access to the full memory bus speed as block transfers in the GB/sec.