Jump to content

lonnie776

Members
  • Posts

    38
  • Joined

  • Last visited

Everything posted by lonnie776

  1. I have a large unraid server with 17 array drives 2 parity and RAID1 SSD Cache Pool. On that I run 3 VM's and up to 12 dockers some of which are io intensive. I often see high iowait % however in my case I know that it's because I am simply demanding too much from my disks, which would be fine if it didn't cripple every other part of the system. Years back I found a way around iowait consuming the whole CPU. Linux allows you to isolate CPU cores from the system so you can dedicate them to other tasks (VM/Docker). This way when the system is crippled by iowait, your VM's and Docker containers can continue to function happily on the isolated CPU cores, although IO may still suffer if accessing the array/pool causing the iowait. As I understand it, my situation is different than yours, but hopefully this trick will still help you work around some of the headaches. In order to isolate the cores, you have to go into your flash drive and edit /syslinux/syslinux.cfg Here is my default boot mode which I have edited to include "append isolcpus=4-9, 14-19". This option will force the system to run on 0-3, 10-13 leaving the isolated cores idle. label Unraid OS menu default kernel /bzimage append isolcpus=4-9,14-19 initrd=/bzroot I have an old hyperthreaded 10 core Xeon so I have 20 virtual cores 0-19. I chose to keep 4 cores for my system as plugins still run on the system, and I have isolated 6 cores for VM's and Docker containers. For this to work properly you must pin each VM and Docker to the isolated cores of your choosing. Now when you are plagued by iowait, your Dockers and VM's will still have processing power. I hope this helps. Edit: After looking into this a bit further, I found that this has been implemented in the GUI. Now you simply go to Settings->CPU Pinning.
×
×
  • Create New...