Я про это думал с год назад и пришел к тому что чем городить мониторинг проще с помощью весовых коэффициентов и коэффициентов оверпровиженинга ограничить максимальный steal time.
Допустим, у нас 48 ядер на хосте. Всем ВМ выделяем не больше 60 ядер, к примеру.
И тогда уже не важно сколько там чего какая вм жрет потому что без запинивания ядер планировщик хоста будет размазывать нагрузку по всем ядрам и даже если все витуалки будут нагружать свои vCPU на 100% планировщик хоста вряд ли допустит перекос и вм от процессорного времени друг друга примерно равные куски будут отъедать.
при таком подходе, конечно, может получиться что у тебя какие-то хосты очень слабо нагружены, если там все вм простаивают. Но зато и у клиентов есть гарантия относительно доступного процессорного времени.
Но это грубо. На деле, конечно, возможно что ядро хоста будет субоптимально раскидывать потоки виртуалок по ядрам. Но на практике такого никогда не замечал.
более того, если переподписка будет космическая, то на хосте ты не увидишь полную загрузку ядер - там будет тупо скедуллер щелкать процессы, на хостовом цпу у тебя будет чет порядка 80%, а на виртушках будет ад и израель
Такое ощущение, что тут нищехостеры с 1000-кратной переподпиской и кластерами в общаге из ноутбуков обсуждение ведут, а не уважаемые доны с кластерами на экзабайты оперативки и сотни тысяч сокетов.
хоспаде, весь рынок паблик иаса в СНГ включая все-все-все гипервизоры всех-всех-всех вендоров - примерно 2 тыщи стоек по 5квт на 2/3 пустых, а вы тут про экзабайты =)