Мое использование памяти увеличивается со временем, и перезапуск Django не подходит пользователям.
Я не уверен, как определить профиль использования памяти, но некоторые советы о том, как начать измерение, были бы полезны.
У меня есть ощущение, что есть несколько простых шагов, которые могут принести большую прибыль. Обеспечение того, чтобы для «debug» было установлено значение «False», является очевидным явлением.
Может кто-нибудь предложить другим? Насколько улучшилось бы кэширование на сайтах с низким трафиком?
В этом случае я работаю под Apache 2.x с mod_python. Я слышал, что mod_wsgi немного скуднее, но было бы сложно переключиться на этом этапе, если я не знаю, что выигрыш будет значительным.
Редактировать: Спасибо за советы. Любые предложения, как узнать, что использует память? Есть ли руководства по профилированию памяти Python?
Также, как уже упоминалось, есть несколько вещей, которые затруднят переход на mod_wsgi, поэтому я хотел бы иметь некоторое представление о выигрышах, которые я мог ожидать, прежде чем пахать вперед в этом направлении.
Редактировать: Карл разместил здесь чуть более подробный ответ, который стоит прочитать: Развертывание Django: сокращение накладных расходов Apache
Редактировать: Статья Грэма Дамплтона - лучшее, что я нашел в материалах, связанных с MPM и mod_wsgi. Я довольно разочарован тем, что никто не может предоставить какую-либо информацию об отладке использования памяти в самом приложении.
Окончательное редактирование: Что ж, я обсуждал это с Webfaction, чтобы посмотреть, могут ли они помочь с перекомпиляцией Apache, и это их слово по этому вопросу:
"Я действительно не думаю, что вы получите большую выгоду, переключившись на установку MPM Worker + mod_wsgi. Я предполагаю, что вы сможете сэкономить около 20 МБ, но, вероятно, не намного больше этого".
Так! Это возвращает меня к моему первоначальному вопросу (о котором я пока не знаю). Как можно определить, в чем проблема? Это хорошо известная изречение, что вы не можете оптимизировать без тестирования, чтобы увидеть, где вам нужно оптимизировать, но очень мало учебных пособий по измерению использования памяти Python и совсем нет специфических для Django.
Спасибо всем за помощь, но я думаю, что этот вопрос все еще открыт!
Еще одно окончательное редактирование; -)
Я спросил это в списке пользователей django и получил очень полезных ответов
Честно говоря, последнее обновление!
Это было только что выпущено. Может быть лучшим решением еще: Профилирование размера объекта Django и использование памяти с Pympler