Force Plex to use multiple core

Server Version#: 1.19.5.3112
Player Version#: NA

I have Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz processor. Whenever I start playing some content (encoding) plex utilizes only a single core of the CPU making it very slow to start playback. if I have some other CPU hogging activity it makes the playback start even more slow.

Is there any way to force plex to use multiple cores all the time even at the start? If not is there any workaround?
I don’t understand why it uses single core at start.

PMS will use more than one core for everything except subtitle burning.

Video decoding and encoding will each run on multiple as does audio.

Can you please capture DEBUG (not VERBOSE) log files where this happens so we can see what it decided and why it’s behaving as you state?

Here is the log - cryptobin.co/u558d968
Passcode- MqZuRB4yteslAN31QbaoMno

Playback starts around line - 690.
I found the following

Streaming Resource: Required bandwidth unknown (media requires deep analysis)

I think the deep analysis is causing the delay. for this particular video, It took 37-38 seconds to start which is pretty bad considering that the server in use has a 2xE5-2620v4 CPU and at the time of testing there were only few processes that were actually using CPU.
Here you can see Plex Transcoder is using only 1 core

@WhyPlexIsSoBuggy

  1. You post an encrypted log AND the decryption key publicly?
  2. Please upload the PMS-generated ZIP file.
1 Like

@ChuckPa
Here you go - 102.2 KB file on MEGA

Let me know if you have received the zip file.

Please, upload here? I don’t like being tracked by other sites leaving cookies and crap in my browser.

When I download the file, I will remove it.

MODERATOR EDIT: User log file upload removed

Done.

You have two things happening in the playback.

  1. EAC-3 is being converted for the player (single threaded)
  2. The transcode to comply with the bitrate playback limit (7246)

The E6-2620 is a 6 core / 12 thread processor which only produces 5257 passmarks total. This means it’s per-core speed is below 1000. That’s slow.

In spite of its age, it’s doing ok except for the conversion of the audio. Video transcoding is actually filling the buffer and going to sloth mode (slumber until needed)

Apr 16, 2021 13:35:02.017 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:48422 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:02.017 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:48422] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:02.266 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 1 (1)
Apr 16, 2021 13:35:02.267 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 2 (1)
Apr 16, 2021 13:35:03.758 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 2 (2)
Apr 16, 2021 13:35:03.759 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 3 (2)
Apr 16, 2021 13:35:05.315 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 3 (3)
Apr 16, 2021 13:35:05.315 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 4 (3)
Apr 16, 2021 13:35:06.753 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 4 (4)
Apr 16, 2021 13:35:06.754 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 5 (4)
Apr 16, 2021 13:35:07.181 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:48608 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:07.181 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:48608] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:08.132 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 5 (5)
Apr 16, 2021 13:35:08.132 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 6 (5)
Apr 16, 2021 13:35:08.447 [0x7f6f4a7fc700] DEBUG - Session pg0xzhfaowjtwdgvvgy39dx6 (2) is throttling
Apr 16, 2021 13:35:08.448 [0x7f6f95ffb700] DEBUG - [Transcoder] Throttle - Going into sloth mode.
Apr 16, 2021 13:35:12.317 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:48754 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:12.317 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:48754] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:17.543 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:48908 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:17.543 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:48908] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:22.690 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:49070 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:22.690 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:49070] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:27.841 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:49234 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:27.841 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:49234] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:33.024 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:49430 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:33.024 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:49430] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:38.339 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:49688 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:38.339 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:49688] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:43.557 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:49888 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:43.557 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:49888] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:48.708 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:50070 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:48.708 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:50070] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:53.887 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:50246 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:53.887 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:50246] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:35:58.458 [0x7f6f4a7fc700] DEBUG - Transcoder segment range: 0 - 6 (6)
Apr 16, 2021 13:35:58.458 [0x7f6f95ffb700] DEBUG - Transcoder segment range: 0 - 7 (6)
Apr 16, 2021 13:35:59.234 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:50528 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:35:59.235 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:50528] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:04.453 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:50660 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:04.453 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:50660] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:09.759 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:50774 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:09.759 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:50774] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:15.067 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:50896 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:15.067 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:50896] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:20.324 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:51004 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:20.324 [0x7f6fc77fe700] DEBUG - Completed: [127.0.0.1:51004] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:25.485 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:51148 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:25.485 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:51148] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:30.649 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:51244 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:30.649 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:51244] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:35.798 [0x7f6f4a7fc700] DEBUG - Request: [127.0.0.1:51566 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:35.798 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:51566] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:40.953 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:51680 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:40.953 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:51680] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:46.113 [0x7f6f95ffb700] DEBUG - Request: [127.0.0.1:51812 (Loopback)] GET /identity (10 live) Signed-in
Apr 16, 2021 13:36:46.114 [0x7f6fc6ffd700] DEBUG - Completed: [127.0.0.1:51812] 200 GET /identity (10 live) 0ms 398 bytes (pipelined: 1)
Apr 16, 2021 13:36:47.104 [0x7f6f96ffd700] DEBUG - Auth: Refreshing tokens inside the token-based authentication filter.

This is one of those cases where the breadth of the CPU is hurting. It can do “a lot of things at once” where “a few things faster” is what’s needed.

1 Like

Actually I have the v4 of the CPU - PassMark - Intel Xeon E5-2620 v4 @ 2.10GHz - Price performance comparison which is slightly better and newer.

Looking at ONLY the core count (ignoring hyperthreading) which is what I should have done initially.

  1. CPU I selected - 7246 / 6 = 1207 passmarks per core
  2. V4 CPU - 9036 / 8 = 1129 passmarks per core.

It’s actually slower on a per-core basis

. . . which is better but still means your single-core performance is roughly the same as an ten-year-old i3.

As ChuckPa says, the Xeon chips rock at handling multiple parallel requests in things like database servers. Their generally lower clock rates, though, makes them not so good at compute intensive tasks that require maximum core speed like transcoding.

Audio and video transcoding can make use of multiple threads but there are decreasing returns as the thread number increases (depending on the codec). If your system supports it you can up the processor to something like a 5th or 6th Gen i7 or an E5-2667v4 and see 25-30% improvement in single core performance. You just gotta pay to play for that.

1 Like

Alright, I suspected the single core is the actual issue, but wasn’t expecting that only the audio transcoding is slowing down.
Thank you everyone for clearing it up.

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