Array activity causing Plex and other docker containers to be unresponsive


Go to solution Solved by paulmorabi,

Recommended Posts

I've noticed that a lot of disk activity on the array is causing Plex especially to hang and become very slow to complete unresponsive. This mostly happens when sabnzbd is decompressing files or they are being transferred to the share on the array by Sonarr/Radarr. When the two are happening together, everything slows to a crawl.

 

I've tried a few different things - pinning cpu cores to Plex didn't do anything but tweaking sabnzbd to pause downloading while decompressing and use fewer threads as remediated the issue somewhat.

 

Currently, I have my downloads/scratch disk as part of the array but it is its own share so not spread across disks. Can I take this out of the array and make it its own disk? Is there anything further I can do to eradicate this? Diagnostics attached.

tower-diagnostics-20231112-1034.zip

Link to comment

Anything writing to the array will adversely affect the performance of other applications using the array.   You could definitely put your downloads on a separate drive (in a new pool) to get it out of the array.    Having said that I have no idea how large your downloads share is - if it will fit you are likely to get a good performance increase by putting on your existing cache drive.

 

Another think I notice is that the 'system' share has part of its contents on disk6.    You will get better performance from docker containers if it is all on the cache.   You have your mover setting correct for it to be transferred to the cache, but since mover will not move open files you can fix this by temporarily disabling the VM and Docker services under Settings so they do not keep files open in that share and then running mover from the Main tab.  When that completes you can re-enable these services.

  • Like 1
Link to comment
36 minutes ago, itimpi said:

Anything writing to the array will adversely affect the performance of other applications using the array.   You could definitely put your downloads on a separate drive (in a new pool) to get it out of the array.    Having said that I have no idea how large your downloads share is - if it will fit you are likely to get a good performance increase by putting on your existing cache drive.

 

Another think I notice is that the 'system' share has part of its contents on disk6.    You will get better performance from docker containers if it is all on the cache.   You have your mover setting correct for it to be transferred to the cache, but since mover will not move open files you can fix this by temporarily disabling the VM and Docker services under Settings so they do not keep files open in that share and then running mover from the Main tab.  When that completes you can re-enable these services.

 

 

Thanks for this. I've just done the mover operation but there is no way to know its completed?

 

The current downloads disk is 4TB and its a WD drive. My cache is currently 1TB. I knew this was an option but its probably too small for now. What does moving the downloads share to a new array entail and how does or can it improve performance?

 

My final option is to move Plex to a separate host but its the last resort option, if possible.

 

Link to comment
5 minutes ago, paulmorabi said:

Thanks for this. I've just done the mover operation but there is no way to know its completed?

There should be messages in the syslog about mover starting and finishing.  Having said that probably the easiest in this case will be that the 'system' folder disappears from disk6.

7 minutes ago, paulmorabi said:

The current downloads disk is 4TB and its a WD drive. My cache is currently 1TB. I knew this was an option but its probably too small for now. What does moving the downloads share to a new array entail and how does or can it improve performance?

You can just set up a drive in a new pool, and then set up the share to have this as the primary storage and the array as the secondary storage. and mover direction to be array->Pool   As before running mover would transfer the files to this new pool.   Once it has all transferred then you can remove the secondary storage option from that pool. It would definitely improve performance as writing to a parity protected array has large overheads as described here in the online documentation accessible via the Manual link at the bottom of the Unraid GUI.   It is now not going to interact with accesses to the array or to the cache pool.  As long as your downloads go via the User Share and do not explicitly name disk6 this should be all that is required.

 

Another option to improve performance would be to enable Exclusive mode under Settings->Global Share settings.   For shares that have all their content on a pool this can improved performance as it bypasses the fuse layer in Unraid that is used to handle User Shares.

 

 

  • Like 1
Link to comment
  • Solution
On 11/12/2023 at 11:53 AM, itimpi said:

There should be messages in the syslog about mover starting and finishing.  Having said that probably the easiest in this case will be that the 'system' folder disappears from disk6.

You can just set up a drive in a new pool, and then set up the share to have this as the primary storage and the array as the secondary storage. and mover direction to be array->Pool   As before running mover would transfer the files to this new pool.   Once it has all transferred then you can remove the secondary storage option from that pool. It would definitely improve performance as writing to a parity protected array has large overheads as described here in the online documentation accessible via the Manual link at the bottom of the Unraid GUI.   It is now not going to interact with accesses to the array or to the cache pool.  As long as your downloads go via the User Share and do not explicitly name disk6 this should be all that is required.

 

Another option to improve performance would be to enable Exclusive mode under Settings->Global Share settings.   For shares that have all their content on a pool this can improved performance as it bypasses the fuse layer in Unraid that is used to handle User Shares.

 

 

 

Thanks. I don't have another disk handy so I am going to try moving the 4TB disk to a separate pool as this is the lone disk assigned to the downloads share. I've started backing up its contents to another share on the array. I will remove the disk from the current array (following these instructions) and then add it to its own pool. I understand this will format the data on the disk so I'll need to delete and recreate the downloads share on the new pool and then copy the stuff back over? Is that correct?

 

EDIT: Above operation seems to have worked reducing the overall server load.

 

 

Edited by paulmorabi
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.