Может ли kvm guest получить больше процессоров, чем имеет?
Когда я запускаю виртуальную машину с одним виртуальным процессором внутри KVM, возможно ли, что виртуальная машина может фактически получить больше тактов процессора, чем один целый процессор, если на хосте не запущен другой виртуальный процессор? Другими словами, может ли VM получить больше процессоров, чем имеет? У меня нет предела пропускной способности процессора для моего виртуального компьютера.
Поскольку планировщик Linux (CFS) сохраняет работу, если я правильно понимаю, планировщик всегда должен быть занят, если есть какая-то работа. В этом случае некоторые темы в моем вм.
Если на самом деле vm может иметь более одного процессора, обслуживающего его, как vm сообщает об использовании своего процессора? >100% или просто 100%. Какое количество процессоров в /proc/cpuinfo виртуальной машины?
Я думаю, что это интересный вопрос или, может быть, глупый вопрос. Я планирую провести несколько экспериментов, если ответа не будет.
Заранее спасибо. Zhen
1 ответ
Протестировано, результат показывает, что гость НЕ может получить больше ЦП, чем ему требуется, даже если планировщик Linux сохраняет работу.
Я провел несколько простых экспериментов, используя микро-тест, который в основном вращает процессор. Хост - это двухъядерный компьютер, на котором работает KVM с одним гостевым виртуальным компьютером.
Я запускаю несколько тестовых приложений в гостевой виртуальной машине одновременно, чтобы посмотреть, сможет ли оно получить больше ресурсов процессора, чем того заслуживает. Результат выглядит следующим образом:
Когда vm настроен с 1 виртуальным процессором, sar сообщает о ~100% загрузки ЦП в виртуальной машине и ~50% в хосте. Верхняя команда в хосте показывает 2 потока KVM.
Когда vm настроен с двумя виртуальными процессорами, sar сообщает о ~100% загрузки ЦП в виртуальной машине и ~100% в хосте. Верхняя команда в хосте показывает 3 потока KVM.
Таким образом, моя теория заключается в том, что KVM назначит отдельный поток для каждого виртуального ЦП, а для некоторых действий управления используется дополнительный поток. Таким образом, виртуальная машина с одним виртуальным процессором не может обслуживаться одновременно несколькими процессорами хоста.
Получается глупый вопрос:)