Каким способом можно узнать на что расходует память демон WSGI на веб-узле?

Сервер WSGI на веб-узле проксирует запросы веб-сервера в приложение. Наступает момент, когда память, занимаемая демоном WSGI, начинает расти.

Как можно понять на что именно расходует память демон WSGI?


Ответы (1 шт):

Автор решения: JBlack

Для поиска причин дополнительного расхода памяти процессом WSGI можно воспользоваться следующими шагами:

  1. Определить PID-номер worker-процесса WSGI, занимающего «много» памяти, например, с помощью встроенных в linux средств – командой

watch "ps -eo pid, ppid, cmd, %mem --sort=-%mem | head"

или сторонней утилитой htop.

  1. В логах журнала приложений WSGI-сервера мы увидим записи со статистикой обращений к бэкенду, где зафиксированы параметры запросов к приложениям бекенда, PID-номер процесса, обработавшего запрос, IP-адрес, с которого пришёл запрос, количество затронутых переменных и их объём памяти, а также, другие сведения.
  2. В соответствии с этими данными мы можем установить наиболее «прожорливые» запросы и, соответственно, определить задействованные с ними контроллеры и другой связанный код, в котором и находится причина перерасхода памяти.
→ Ссылка