footballmad Posted September 24, 2018 Share Posted September 24, 2018 Hi, After watching many of the excellent videos by SpaceInvader One, I decided to isoloate some cpus from UNRAID and the pin them to one VM and my Plex docker. However since doing this I have this error message from the "fix common problems" plugin, ERRORS FOUND SUGGESTED FIX Docker Application plex has multiple CPUs pinned to isolated CPUs Unless you know exactly what you are doing, pinning a docker application to multiple isolated CPUs will only allow the application to execute on a single isolated core and adjust either the Isolated CPUs or the application's CPU pinning I upgraded to Version 6.6.0 the other day without issue. Here's the line I added, isolcpus=4-15,20-31 and wanted to pin 4 or 6 cores to Plex. https://youtu.be/p0iPpPyebUw?t=517 Any advice please? Quote Link to comment
footballmad Posted September 24, 2018 Author Share Posted September 24, 2018 After reading what I wrote I would like to clarify, Quote Unless you know exactly what you are doing, pinning a docker application to multiple isolated CPUs will only allow the application to execute on a single isolated core If I understand correctly, I could pin Plex to 4 cores but it will only ever use one? Is that correct? Quote Link to comment
footballmad Posted September 24, 2018 Author Share Posted September 24, 2018 More info that should be useful. The error stated above says that Plex "will only execute on a single isolated core" As you can see here, I pinned 10-15,26-31 for Plex. On the dashboard I have this, clearly showing one core at 100% Did I misunderstand advanced tweaks from @SpaceInvaderOne ???? Many thanks Quote Link to comment
Squid Posted September 24, 2018 Share Posted September 24, 2018 If you isolate cores via the cpu pinning page, and then tell Plex to execute on more than one of those cores via cpu pinning, it will only execute on one of them. Isolating cores is usually used to reserve the core for exclusive use of a VM. Sent from my LG-D852 using Tapatalk Quote Link to comment
footballmad Posted September 25, 2018 Author Share Posted September 25, 2018 14 hours ago, Squid said: If you isolate cores via the cpu pinning page, and then tell Plex to execute on more than one of those cores via cpu pinning, it will only execute on one of them. Isolating cores is usually used to reserve the core for exclusive use of a VM. Thanks for the reply, I guess it was this part of the video I must have misunderstood. My question now is, is there any way at all to pin multiple cpu cores exclusively for docker applications? Thanks Quote Link to comment
Squid Posted September 26, 2018 Share Posted September 26, 2018 On 9/25/2018 at 6:47 AM, footballmad said: My question now is, is there any way at all to pin multiple cpu cores exclusively for docker applications? unRaid will still potentially use those cores (along with any docker apps that aren't also pinned) Quote Link to comment
footballmad Posted September 27, 2018 Author Share Posted September 27, 2018 17 hours ago, Squid said: unRaid will still potentially use those cores (along with any docker apps that aren't also pinned) So what's the point in isolating cores? Sorry if I've misunderstood. Quote Link to comment
Squid Posted September 27, 2018 Share Posted September 27, 2018 If you want a VM to have exclusive access to the cores then you isolate those cores and pin the VM to them Quote Link to comment
footballmad Posted September 27, 2018 Author Share Posted September 27, 2018 1 minute ago, Squid said: If you want a VM to have exclusive access to the cores then you isolate those cores and pin the VM to them Thanks for your reply, so I can forget it for docker containers then. Quote Link to comment
ZataH Posted September 27, 2018 Share Posted September 27, 2018 (edited) 6 minutes ago, Squid said: If you want a VM to have exclusive access to the cores then you isolate those cores and pin the VM to them I think I misunderstood the concept as well. Thought isolating cpu meant that unraid only would use said cores. So unraid and containers will always use all cores, unless I pin a specific container to specific numbers of cpu cores? Just to be clear, this screenshot does not mean that unraid only will use 4 cores then? Edited September 27, 2018 by ZataH Quote Link to comment
Squid Posted September 27, 2018 Share Posted September 27, 2018 (edited) Your screenshot shows that unRaid (and docker) will NOT utilize cores 0, 1, 10, 11. It will use everything else. Isolating = Isolating them from the OS (ie: OS won't use them) Edited September 27, 2018 by Squid 1 Quote Link to comment
ZataH Posted September 27, 2018 Share Posted September 27, 2018 50 minutes ago, Squid said: Your screenshot shows that unRaid (and docker) will NOT utilize cores 0, 1, 10, 11. It will use everything else. Isolating = Isolating them from the OS (ie: OS won't use them) Thanks for clearing that up. Quote Link to comment
JimL Posted December 22, 2018 Share Posted December 22, 2018 (edited) I also went in this trap. Quote CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers). Settings/CPUset - CPU Isolation So I isolated half of the cores (6-11 + 18-23). I've since been troubles with Plex just grinding to a halt, and had actually decided to look into that today. Seems like I no longer have to. Running two 4K transcodes at the same time I could see it 100% the four cores it still had access to (it was pinned to 4-9 + 16-21), while it should have utilized up to 8 more cores. I'm assuming this will solve my issues. If isolation isn't supposed to let you assign cores to Docker I really think the help text should be updated. Edited December 22, 2018 by JimL Quote Link to comment
Dro Posted January 4, 2019 Share Posted January 4, 2019 There definitely seems to be an issue with CPU isolation and Dockers.. Did a bunch of testing with Plex, Nzbget, Sonarr, Radarr etc and it seems when you isolate multiple cores, for example I Isolated cores 5/11 which is my pair I assigned those isolated CPUs to nzbget, sonarr,radarr and you can only see core 5 being utilized, not 11.. It doesn't make much sense. As soon as I disable isolation on lets say core 11, I can then see usage on that core from those dockers.. At this point I've completely turned off CPU isolation and it seems all my CPU pinning is working properly but id like to isolate certain cores so the OS doesn't utilize them at all, just certain dockers.. Not sure if this is a bug or a misunderstanding on how it's supposed to work. Quote Link to comment
Squid Posted January 4, 2019 Share Posted January 4, 2019 (edited) 10 minutes ago, Trembler said: I Isolated cores 5/11 which is my pair I assigned those isolated CPUs to nzbget, sonarr,radarr and you can only see core 5 being utilized, not 11.. Isolating cores means that you're isolating them from the base OS (unRaid). Net result is that the task switcher won't touch those cores. Which means that if you pin an application to multiple isolated cores, it will only run on the lowest numbered one. IE: Don't isolate cores 5/11 if you want your apps to run on them. Isolating cores is generally only done to give a VM exclusive rights to the cores. Edited January 4, 2019 by Squid Quote Link to comment
Squid Posted January 4, 2019 Share Posted January 4, 2019 To be honest, I argued for when a core is isolated to not allow the GUI to let you select it for a container, as I knew that this question was going to happen over and over again. (which it has). 1 Quote Link to comment
JimL Posted January 6, 2019 Share Posted January 6, 2019 (edited) On 1/4/2019 at 7:48 PM, Squid said: To be honest, I argued for when a core is isolated to not allow the GUI to let you select it for a container, as I knew that this question was going to happen over and over again. (which it has). It would at least help if the text was changed to this Quote CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment to VMs. Instead of what it currently is, which explicitely states you can use isolated cores for docker containers Quote CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers). Settings/CPUset - CPU Isolation But yes I would agree, disabling the cores where they are not usable, preferably with a tooltip saying the core is isolated would be very nice. Edited January 6, 2019 by JimL Quote Link to comment
Squid Posted January 6, 2019 Share Posted January 6, 2019 42 minutes ago, JimL said: CPU isolation allows the user to specify CPU cores that are to be explicitly reserved for assignment (to VMs or Docker containers). Probably the argument would be that the statement as above is actually correct. Nothing says that you can't isolate a core and then have a container(s) run on it. The problem lies when multiple cores are isolated and the container is then pinned to those multiple cores. (as an aside, the Fix Common Problems plugin does catch this error) Quote Link to comment
JimL Posted January 7, 2019 Share Posted January 7, 2019 (edited) I might be slow but I still find it extremely confusing. Like, I understand (from your posts, not the web ui) that if I select the cores to be isolated then I am stuck with assigning ONE core to each "thing". But does that mean VMs can also only run on one (isolated) core? Seems like a use case that at least I find to be very edge case / never used. Edited January 7, 2019 by JimL Quote Link to comment
Dro Posted January 8, 2019 Share Posted January 8, 2019 (edited) On 1/4/2019 at 9:55 AM, Squid said: Isolating cores means that you're isolating them from the base OS (unRaid). Net result is that the task switcher won't touch those cores. Which means that if you pin an application to multiple isolated cores, it will only run on the lowest numbered one. IE: Don't isolate cores 5/11 if you want your apps to run on them. Isolating cores is generally only done to give a VM exclusive rights to the cores. Thank you, makes total sense! It's confusing. I like the thought of not being able to select isolated cores in the containers. So basically if i isolate cores i can use them just for the VM and nothing else will touch them? Edited January 8, 2019 by Trembler Quote Link to comment
Squid Posted January 8, 2019 Share Posted January 8, 2019 8 hours ago, Trembler said: So basically if i isolate cores i can use them just for the VM and nothing else will touch them? Correct Quote Link to comment
Dro Posted January 9, 2019 Share Posted January 9, 2019 1 hour ago, Squid said: Correct Thanks, I'm going to test it later. Quote Link to comment
yendi Posted September 8, 2019 Share Posted September 8, 2019 I resurrect this post as it is not clear for me: I have a 8 cores CPU and I isolated 4 cores so unraid does not use them. If I don't pin any docker, will they use the 4 cores + the 4 isolated cores that unraid is unable to use or will they be restricted to the same cores as unraid? Thanks Quote Link to comment
Squid Posted September 8, 2019 Share Posted September 8, 2019 Same cores as unRaid. And if you pin a docker app to more than 1 of the isolated cores, then they will only use 1 core Quote Link to comment
yendi Posted September 8, 2019 Share Posted September 8, 2019 Ok so the best solution is to restrict unraid to 4 cores and then distribute 1 isolated core per docker Quote Link to comment
Recommended Posts
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.