Не могу понять причину высокой средней нагрузки (LA)

Не могу понять причину высокой средней нагрузки (LA)

У меня есть сервер без ОС с 32 ядрами/64 битами ЦП и 64 ГБ ОЗУ. Ubuntu 18.04 на борту. Работает pgsql (низкая нагрузка), ~250 контейнеров Docker с Python для работы сети. htop показывает мне LA 120 (1/5/15 минут), но я не могу найти причину.

  • htop показывает ~50% загрузку всех ядер
  • Получил 12 ГБ свободной оперативной памяти
  • vnstat -l показывает 25% загрузку сетевого адаптера (в сводке с обеих сторон)
  • топ шоу wa (iowait) 0.0
  • iostat не показывает, что на жестких дисках ничего не записано, iotop иногда показывает процессы со скоростью записи 10-20 Кб/сек в секунду.
  • сверху не показывать красные линии. Все серые (хорошо).
  • "ps -eo stat | grep -c D" и "ps -eo stat | grep -c D" показывают "1"

Думаю, я проверил все - CPU, RAM, HDD, сеть. Я понимаю корень большого LA - контейнеры с python. Но я хочу найти узкое место для оптимизации. Где я могу увидеть причину высокого LA больше?

ОБНОВЛЕНИЕ:Некоторые дополнительные. Я думаю, узкое место где-то в CPU, потому что если я использую pypy в conrainers, LA падает, если использую простой pyhton - LA растет. Но я не могу понять, почему, потому что htop всегда показывает загрузку CPU <100%.

решение1

Средняя нагрузка Linux — это количество процессов, которые в данный момент (активно) запущены или ожидают выполнения.

У вас есть 250 контейнеров Docker плюс системные процессы и ваши инструменты мониторинга. Это просто огромное количество процессов. Это немного зависит от того, что запущено внутри ваших контейнеров и как часто процессы просыпаются, чтобы что-то сделать. Если вы уменьшите количество контейнеров Docker на 50%, а средняя нагрузка также снизится на 50%, то вы найдете виновника.

Связанный контент