Как стать автором
Обновить

VMware ESXI 6.7 + CentOS 8 + tuned (+ немножко packer) = использование 100% CPU со стороны ESXI host

Предыстория

При разворачивании нового полутестового проекта на CentOS 8 (система выбиралась эксплуатантом) практически сразу после разворачивания системы VMware сообщила о 100% использовании CPU виртуальной машиной. Пока систему настраивали на это никто не обращал внимание, но после запуска в полу-тестовую эксплуатацию со стороны ESXI host-а загрузка процессора постоянно 100%, а со стороны самой виртуальной машины колеблется в широких диапазонах со средним значением 50%.
Вот так выглядит график загрузки CPU для этой виртуальной машины:

Красная - загрузка CPU в процентах
Красная - загрузка CPU в процентах

Информации в сети, про возможные причины такого поведения очень мало, большая часть сводится к обновлению vmware-tools, изменения параметров энергосбережения, начиная от BIOS и заканчивая параметрами ядра и банальным советам по добавлению ресурсов к хосту. Т.к. на системе уже работали пользователи то возможности по выключению/перезагрузке VM для изменения конфигруации были очень ограничены по времени и проблема немножко "затянулась".

Проблема разрастается

Приходит запрос на создание еще двух VM от другого подразделения и тоже на Cent OS восьмой версии. Почти сразу после установки и начальной настройки эксплуатантом аналогично использование процессора со стороны хоста 100% на обеих вирутальных машинах. Поскольку системы еще не используются пользователями есть возможность детально разобраться в происходящем. Это не единственные CentOS 8 в работе, поэтому вариант что проблема в системе сразу отбрасывается, да и вряд ли бы осталось незамеченым другими такое поведение системы. Единственное что объединяет первый случай и второй это то, что они разворачивались из шаблона, который создавался packer-ом, другие системы ставились эксплуатантами самостоятельно с диска. Но есть еще одна система, которая тоже разворачивалась из подобного шаблона, но на которой такая проблема не наблюдается.

Использование CPU со стороны хоста (верхняя консоль), виртуальной машины(нижняя консоль) и график
Использование CPU со стороны хоста (верхняя консоль), виртуальной машины(нижняя консоль) и график

Хорошая новость в том, что есть тестовая виртуальная машина, с которой можно делать что угодно, плохая, что все почти все рекомендации, которые были найдены в сети уже использовались. Очень плохая: из того, что неиспользовалось до этого из-за невозможности постоянно перегружать рабочую систему было протестировано на тестовой с нулевым результатом. Тупик....

Выход из тупика

Начался поиск того, что отличает Cent OS от других дистрибутивов и отличий в нормально работающих системах с проблемными. Большой плюс оказался в том, что проблема повторялась и на абсолютно чистой минимальной системе. Просматривая список запущенных процессов в топе взгляд зацепился за tuned. Сравниваем активные профили на нормальных системах и проблемных и.... в первом случае имеем virtual-guest а в проблемных network-latency. В ходе коротких экспериментов выясням, что убитие процесса tuned, выключение или перевод в профиль virtual-guest моментально снижает использование процессора хостом до адекватного значения.

tuned-adm profile virtual-guest
tuned-adm profile virtual-guest

Почему в шаблоне собранном packer-ом по умолчанию для tuned используется другой профиль еще предстоит выяснить, хотя бы для удовлетворения собственного любопытства. Явных переконфигураций быстрым взглядом найдено не было.

Резюме

Tuned внутри виртуальной машины с "неправильным" профилем может не только не улучшить производительность, но и использовать все выделенные процессоры, при чем это будет видно только со стороны хоста. Внутри виртуальной машины все выглядит идеально. Массово такой эффект не проявляется, т.к. по умолчанию внутри виртуальных машин используется профиль virtual-guest, в то время как network-latency использовался по умолчанию на наблюдаемых аппаратных системах. Первопричина такого поведения не выяснена и требует совсем других инструментов, чем есть в наличии.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.