ZFS в Linux и KVM: узлы NUMA для хоста
Я заинтересован в том, чтобы использовать образы KVM на zvols под ZFS на Linux, в многосетевой системе. Мне интересно, как мне закрепить узлы NUMA, чтобы максимизировать преимущества кэша ZFS ARC для всех образов KVM в системе. Очевидно, я должен прикрепить каждую виртуальную машину к одному сокету / узлу, чтобы вся ее память находилась на одном контроллере. Но я озадачен тем, как настроить хост так, чтобы ARC приносил максимальную пользу каждой виртуальной машине.
Кажется логичным, что если я оставлю хост на одном узле NUMA, это будет означать, что виртуальные машины на другом узле будут иметь более медленный доступ к ARC. Однако, если хост распределен по узлам NUMA, его производительность снизится, что может снизить производительность гостевой системы.
Из того, что я прочитал, мне даже не ясно, может ли хост быть привязан к конкретным узлам, или по определению он использует их все. И если это так, насколько осведомлен ZFS в Linux ARC узлов NUMA?
1 ответ
Закрепление ресурсов / процессов вручную в определенных сокетах - это то, что должно быть сделано только в очень специфических обстоятельствах. Более того, сама ARC является глобальным ресурсом с (в основном) непредсказуемыми шаблонами / попаданиями доступа.
Я настоятельно рекомендую вам избегать подобной тонкой настройки, если только она не требуется для хорошей производительности. Попробуйте запустить установку Linux с настройками по умолчанию, вообще не связываясь с NUMA, и наблюдайте за поведением вашей системы, используя numastat
Если требуется дополнительная настройка, попробуйте использовать автоматическую оптимизацию через numad
, Только и только, если этого недостаточно, попробуйте оптимизировать, используя numactl
и / или закрепление гостевого процессора KVM.