I’m running the official docker container for plex. I have a discrete gpu (intel arc a380) and an i5-10400 CPU (it does have a built in GPU on that model). Plex is configured to hardware transcode using the discrete GPU.
I’m noticing that even a single 1080p transcode is causing the CPU usage to oscillate between 75 and 90% (idle without plex running at all is around 10%). I have verified that plex is showing”(hw)” next to the stream on the dashboard, so it is a hardware transcode. intel-gpu-top shows that the transcoder seems to be running on the GPU. Despite that, Plex and htopon the host are both reporting CPU usage is quite high. I’ve disabled credit/scene scanning and the DLNA server.
Maybe also worth noting that earlier I noticed that library scans were not working and I had to run DBRepair (thank you ChuckPa!)
The default Unraid container configuration does not have GID matching such that PMS can access the hardware. It can see it but doesn’t have privilege to use it.
Enabling Privileged mode bypasses that restriction
I just enabled that setting. I’m still seeing rather high cpu usage at idle. I think transcoding could be a red herring. I’ve attached a screenshot of htop run from the host, and then top from within the docker container, both ran with no streams or scans being done within plex (dashboard does not show any activities). The dashboard is reporting very high CPU usage as well. I am also including another snapshot of the logs that I grabbed a minute ago.
Thanks for the reply, and let me know if there’s anything else that would be useful in helping me troubleshoot this.
Overall, here’s what I’m observing: On container startup, idle usage is low. Then over time, the CPU% increases. It seems like the increases in CPU% is correlated with users streaming content but even after the stream is closed out, the CPU% remains high
For example, it was hovering around 80% with one active stream, direct play no transcode. Tailing the log only showed logs related to that user’s stream– periodic (every 5 seconds or so) series of messages like the following that look related to playback. It repeats these with slightly different contents (presumably because they’re making progress in watching). I redacted some user info.
Jan 20, 2026 16:40:44.304 [23250118875960] DEBUG - Auth: authenticated user redacted as redacted
Jan 20, 2026 16:40:44.304 [23249924164408] DEBUG - Request: [redacted:49740 (WAN)] GET /:/timeline?ratingKey=139050&key=%2Flibrary%2Fmetadata%2F139050&playbackTime=795604&playQueueItemID=414788&state=playing&hasMDE=1&time=796000&duration=1301000 (17 live) #5a8e TLS GZIP Signed-in Token (redacted)
Jan 20, 2026 16:40:44.304 [23249924164408] DEBUG - [Req#5a8e] Client [dna4ly0ujzdrl7m3yswrgfu3] reporting timeline state playing, progress of 796000/1301000ms for guid=, playbackTime=795604ms ratingKey=139050 url=, key=/library/metadata/139050, containerKey=, metadataId=139050, source=
Jan 20, 2026 16:40:44.307 [23249924164408] DEBUG - [Req#5a8e] Play progress on 139050 'The Old Wagon' - got played 796000 ms by account redacted!
Jan 20, 2026 16:40:44.308 [23249924164408] DEBUG - [Req#5a8e] [Now] User is redacted (ID: redacted)
Jan 20, 2026 16:40:44.308 [23249924164408] DEBUG - [Req#5a8e] [Now] Device is macos (redacted).
Jan 20, 2026 16:40:44.309 [23249924164408] DEBUG - [Req#5a8e] [Now] Profile is Plex Desktop
Jan 20, 2026 16:40:44.309 [23249924164408] DEBUG - [Req#5a8e] [Now] Updated play state for /library/metadata/139050.
Jan 20, 2026 16:40:44.309 [23249924164408] DEBUG - [Req#5a8e] Statistics: (a0nh6ukj6cgltky8u4a7mzth) Reporting active playback in state 0 of type 4 (scrobble: 0) for account 338530408
Jan 20, 2026 16:40:44.312 [23250118875960] DEBUG - Completed: [104.30.177.115:49740] 200 GET /:/timeline?ratingKey=139050&key=%2Flibrary%2Fmetadata%2F139050&playbackTime=795604&playQueueItemID=414788&state=playing&hasMDE=1&time=796000&duration=1301000 (17 live) #5a8e TLS GZIP 7ms 570 bytes (pipelined: 92)
Jan 20, 2026 16:40:45.186 [23249922054968] DEBUG - Request: [[::1]:59680 (Loopback)] GET /identity (18 live) #5a9e Signed-in
Jan 20, 2026 16:40:45.186 [23250116766520] DEBUG - Completed: [[::1]:59680] 200 GET /identity (18 live) #5a9e 0ms 418 bytes (pipelined: 1)
I saw these logs on repeat from that point onward. At that point the CPU% was holding steady at 90%.
Jan 20, 2026 16:52:20.245 [23249968692024] DEBUG - Request: [[::1]:50156 (Loopback)] GET /identity (17 live) #61e5 Signed-in
Jan 20, 2026 16:52:20.245 [23250116766520] DEBUG - Completed: [[::1]:50156] 200 GET /identity (17 live) #61e5 0ms 418 bytes (pipelined: 1)
The transcoding was a red herring, looks like. With some help from ChuckPa, we determined it was some database issue (one that wasn’t being detected by DBRepair). It caused some performance degradation across the board which caused the CPU usage to grow over the lifetime of the server. So I restored the database to an older snapshot that Plex had saved, and that seems to have fixed the problem.