Windows Server, на котором работает приложение Python Web, медленно истощает память

Я использую Windows Server 2008 RC2, и на нем только веб-приложение Python Flask через Tornado со статическими файлами, обслуживаемыми nginx. Вот и все.

Однако я недавно установил плотность сервера и был обеспокоен тем, что моя память очень медленно истощается. Похоже, какая-то утечка. Вот график:

введите описание здесь

Довольно медленно, но я бы не хотел перезапускать свой веб-сервер каждые 10 дней. Что может быть причиной этого снижения? Как я мог узнать?

1 ответ

Решение

Это пахнет как классическая утечка памяти: при следующей перезагрузке обратите внимание на размер различных программ, а затем периодически перепроверяйте и посмотрите, какие из них растут.
Если это утечка памяти, то без доступа ко всему исходному коду трудно определить проблему. Если это выглядит так, как будто это ваше приложение на Python, вы можете отслеживать код Python и искать источник, но утечка вполне может быть во внешней библиотеке, к которой у вас нет доступа.

Я не хочу рекомендовать "перезапустить приложение" в качестве решения, но если мы говорим по крайней мере неделю или две между необходимыми перезапусками, перезапуски относительно быстрые, у вас есть хороший мониторинг, и вы можете автоматизировать его, это может быть не так плохое решение в краткосрочной перспективе (в долгосрочной перспективе вам нужно посидеть с разработчиками и найти / устранить проблему).

Другие вопросы по тегам