Назад | Перейти на главную страницу

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

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

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

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

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

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