Высокая загрузка ЦП sssd_nss во время тяжелого дискового ввода-вывода
Я нахожусь на Oracle Enterprise Linux 7u2, где я выполняю частые, тяжелые сборки maven, которые генерируют большое количество jars / wars / ear. Недавно я заметил (после некоторых исправлений / выпадений) очень сильную загрузку ЦП этим процессом:
/ usr / libexec / sssd / sssd_nss --uid 0 --gid 0 - отладка к файлам
Когда мой сервер простаивает? Нет проблем. Но во время операций ввода-вывода с тяжелым диском в моих сборках maven java-процесс maven и sssd_nss борются за ЦП, каждая из которых занимает около 50% от общего объема. (Для справки, у меня есть 4-х ядерный сервер Xeon)
Я действительно не знаю, этот процесс (кроме того, что он может иметь дело с LDAP?) Или почему он будет заботиться о копировании и архивировании файлов Java. (Это все на локальном / не NFS диске)
1 ответ
sssd_nss
это демон, который абстрагирует запросы информации о пользователях / группах от нисходящих сервисов, таких как LDAP. На самом деле он не выполняет поиск, а выполняет запрос к службе, которая делает это, сначала проверяя локальный дисковый кеш.
Это заставляет меня думать, что тяжелые части ввода / вывода выполняют много операций вокруг пользователей и групп (например, поиск имени пользователя для UID, поиск групп для UID).
Вы также должны посмотреть, является ли высокий sssd_nss
Процессор IOWAIT. Это указывало бы на то, что вы действительно делаете много запросов пользователей / групп и каким-то образом это задерживается дисковым вводом / выводом. Ты можешь использовать top
чтобы увидеть общую систему IOWAIT (ищите wa
), а также iotop
чтобы получить метрики для процесса.
Если это, в первую очередь, IOWAIT, вам может потребоваться отделить дополнительную емкость ввода-вывода или отделить тома сборки от системных томов. У меня есть сомнения, что это коренная причина вашей проблемы.
Вы упомянули, что это произошло после расплавления / пятен призрака. Это может указывать на то, что процесс сборки инициирует много системных вызовов в sssd_nss
которые теперь медленнее с этими патчами. Возможно, вы захотите заглянуть в процесс сборки и посмотреть, есть ли ненужные команды, связанные с пользователем / группой. Вы можете просмотреть системные вызовы, вызываемые с помощью strace -p $pid_of_sssd_nss
или используйте sysdig для еще более интересного анализа. Если эта служба выполняет много системных вызовов, посмотрите, какие вызовы она выполняет, и выясните, где процесс сборки инициирует эти вызовы. Затем попытайтесь свести их к минимуму.