Việc sử dụng bộ nhớ của tôi tăng theo thời gian và khởi động lại Django không tốt với người dùng.
Tôi không chắc chắn về cách cấu hình sử dụng bộ nhớ nhưng một số mẹo về cách bắt đầu đo sẽ hữu ích.
Tôi có cảm giác rằng có một số bước đơn giản có thể tạo ra lợi nhuận lớn. Đảm bảo 'gỡ lỗi' được đặt thành 'Sai' là một vấn đề lớn.
Bất cứ ai có thể đề nghị những người khác? Bao nhiêu cải thiện sẽ lưu vào bộ nhớ cache trên các trang web lưu lượng thấp?
Trong trường hợp này, tôi đang chạy dưới Apache 2.x với mod_python. Tôi đã nghe nói mod_wsgi hơi gầy hơn nhưng sẽ rất khó để chuyển đổi ở giai đoạn này trừ khi tôi biết mức tăng sẽ rất đáng kể.
Chỉnh sửa: Cảm ơn những lời khuyên cho đến nay. Bất kỳ đề xuất làm thế nào để khám phá những gì sử dụng hết bộ nhớ? Có hướng dẫn nào về cấu hình bộ nhớ Python không?
Ngoài ra, như đã đề cập, có một số điều sẽ khiến cho việc chuyển sang mod_wsgi trở nên khó khăn, vì vậy tôi muốn có một số ý tưởng về lợi ích mà tôi có thể mong đợi trước khi đi tiếp theo hướng đó.
Chỉnh sửa: Carl đã đăng một câu trả lời chi tiết hơn một chút ở đây rất đáng đọc: Triển khai Django: Cắt giảm chi phí của Apache
Chỉnh sửa: Bài viết của Graham Dumpleton là bài viết hay nhất tôi tìm thấy trên MPM và những thứ liên quan đến mod_wsgi. Tôi khá thất vọng vì không ai có thể cung cấp bất kỳ thông tin nào về việc gỡ lỗi sử dụng bộ nhớ trong chính ứng dụng.
Chỉnh sửa cuối cùng: Tôi đã thảo luận vấn đề này với Webfaction để xem liệu họ có thể hỗ trợ biên dịch lại Apache hay không và đây là lời của họ về vấn đề này:
"Tôi thực sự không nghĩ rằng bạn sẽ nhận được nhiều lợi ích bằng cách chuyển sang thiết lập MPM Worker + mod_wsgi. Tôi ước tính rằng bạn có thể tiết kiệm được khoảng 20 MB, nhưng có lẽ không nhiều hơn thế."
Vì thế! Điều này đưa tôi trở lại câu hỏi ban đầu của tôi (mà tôi vẫn không phải là người khôn ngoan hơn). Làm thế nào để đi về việc xác định các vấn đề nằm ở đâu? Đó là một câu châm ngôn nổi tiếng mà bạn không tối ưu hóa mà không thử nghiệm để xem bạn cần tối ưu hóa ở đâu nhưng có rất ít cách hướng dẫn về cách sử dụng bộ nhớ Python và không có gì cụ thể đối với Django.
Cảm ơn sự giúp đỡ của mọi người nhưng tôi nghĩ câu hỏi này vẫn còn bỏ ngỏ!
Một chỉnh sửa cuối cùng ;-)
Tôi đã hỏi điều này trong danh sách người dùng django và nhận được một số câu trả lời rất hữu ích
Thành thật là bản cập nhật cuối cùng!
Điều này vừa được phát hành. Có thể là giải pháp tốt nhất: Cấu hình kích thước đối tượng Django và sử dụng bộ nhớ với Pympler