ядерную тачку, приложение само дискаверит ядра и берет 3 из 4(так задумано), но интересует, почему нагрузка неравномерная между PIDами? такое наблюдается только в кубе и внезависимости от того скольядерный сервак
почему куб так может делать? при этом реквесты и лимиты отключены для экспермиента
pidstat 60 -ru -p 9693,9694,9700
Linux 4.14.198-152.320.amzn2.x86_64 01/28/2021 _x86_64_ (4 CPU)
12:44:23 PM UID PID %usr %system %guest %CPU CPU Command
12:45:23 PM 1000 9693 8.57 1.13 0.00 9.70 3 node
12:45:23 PM 1000 9694 30.42 4.42 0.00 34.83 2 node
12:45:23 PM 1000 9700 25.20 3.52 0.00 28.72 3 node
cpu manager
спасиб
а скажи плиз, ты его юзал? смотрю по бэнчмаркам это стоит включить и возможно решит проблему но почему его не включают тогда по дефолту?
Юзаю, там где требуется, насчёт дефолта хз, может и включат когда нито, это относительно новая фича
и надо понимать, как это работает, тк это довольно специфичная штука, многих вполне и шаред cpu устраивает, это не особо заметно на тачках где ядер не так много, а вот на 64 там нормально тротлит
ну у меня проблема того, что высоконагруженный сервис работает хуже в кубе, чем на обычном серваке вне куба при этом лимитов нет, нод группа изолирована, тротлинга нет, но воркеры приложения работают неравномерно и сильно пыхтят упираясь в потолок LA исходя из доки по цпу менеджеру, из-за его подхода к выделению ресурсов процессорных, может мне помочь завтра поиграюсь погляжу
без лимитов у вас все равно дефолтовый шедуллер cpu, который просто скачет по ядрам. Если ни какие другие метрики не просели, то да, скорее всего статичные ядра вам помогут, но нужно учесть, что поды должны бать guaranteed и cpu должно быть целым, иначе оно не включится. Еще там кстати есть косяк с инит контейнерами(если запросить guaranteed) поскольку на хосте кубелет их не убивает, у них остается висеть запрос на cpu.. для вас наверно это не очень актуально. Еще обратите внимание, что хост ничего не знает о ядрах в подах и спокойно может работать на тех же ядрах что и ваш апп или что там у вас
цпу менеджер разве годится только для гарантированных подов?
прочел внимательней похоже что да☹️ не совсем так понял про shared pool думал он охватывает юзкейсы как для бурст подов, так и для гарантированных и сам его подход к распределению который по лучше того что есть думал поможет
https://github.com/kubernetes/kubernetes/blob/90ca7e89e908acfbfa02388654fedbfc59d49581/pkg/kubelet/cm/cpumanager/cpu_manager.go#L167
Обсуждают сегодня