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