2011-09-25 35 views
7

Làm cách nào để điều chỉnh Django để có hiệu suất tốt hơn? Có hướng dẫn nào không? Tôi có các câu hỏi sau:Mẹo điều chỉnh hiệu suất Django?

  • Mod_wsgi là giải pháp tốt nhất?
  • Có một số bộ nhớ cache opcode như trong PHP không?
  • Tôi nên điều chỉnh Apache bằng cách nào?
  • Làm cách nào để thiết lập mô hình của mình, vì vậy tôi có ít truy vấn/nhanh hơn?
  • Tôi có thể sử dụng Memcache không?
+2

Bạn đang gặp phải sự cố về hiệu suất? –

Trả lời

4

Các bình luận về một vài câu hỏi của bạn:

là mod_wsgi giải pháp tốt nhất?

Apache/mod_wsgi là đủ cho hầu hết mọi người vì chúng sẽ không bao giờ có đủ lưu lượng truy cập để gây ra sự cố ngay cả khi Apache chưa được thiết lập đúng cách. Máy chủ web nói chung không bao giờ là nút cổ chai.

Có một số bộ nhớ cache opcode như trong PHP không?

Bộ đệm Python được biên dịch mã trong bộ nhớ và các quy trình tồn tại trên các yêu cầu. Do đó, bạn không cần một sản phẩm bộ nhớ đệm opcode riêng biệt như PHP vì đó là những gì Python làm theo mặc định. Bạn chỉ cần đảm bảo rằng bạn không sử dụng cơ chế hoặc cấu hình lưu trữ có thể khiến các quy trình bị vứt bỏ theo mọi yêu cầu hoặc quá thường xuyên. Không sử dụng CGI chẳng hạn.

Tôi nên điều chỉnh Apache bằng cách nào?

Không biết bất kỳ điều gì về ứng dụng của bạn hoặc hệ thống bạn đang lưu trữ trên ứng dụng không thể hướng dẫn dễ dàng như cách bạn cần thiết lập Apache. Điều này là do thông lượng, thời lượng yêu cầu, lượng bộ nhớ được sử dụng, lượng bộ nhớ có sẵn, số lượng bộ vi xử lý và nhiều thứ khác sẽ được phát huy. Nếu bạn chưa viết ứng dụng của mình thì bạn chỉ đơn giản là nhảy súng ở đây bởi vì cho đến khi bạn biết nhiều hơn về ứng dụng và tải sản xuất, bạn không thể điều chỉnh Apache một cách tối ưu.

Một vài gợi ý đơn giản.

  • Không lưu trữ PHP trong cùng một Apache.
  • Sử dụng MPM của nhân viên Apache.
  • Sử dụng chế độ daemon mod_wsgi và KHÔNG chế độ được nhúng.

Điều này một mình sẽ giúp bạn tránh khỏi việc gây ra quá nhiều đau buồn cho bản thân bạn bắt đầu.

Nếu bạn thực sự cần điều chỉnh hoàn chỉnh ngăn xếp hoàn chỉnh, ứng dụng và máy chủ web, và không chỉ tối ưu hóa sớm vì bạn nghĩ bạn sẽ có FaceBook tiếp theo mặc dù bạn chưa thực sự viết bất kỳ mã nào Tuy nhiên, sau đó bạn cần phải bắt đầu xem xét các công cụ giám sát hiệu suất để tìm ra ứng dụng của bạn đang làm gì. Ứng dụng và cơ sở dữ liệu của bạn sẽ là nguồn thực sự của các vấn đề của bạn chứ không phải là máy chủ web.

Loại công cụ giám sát hiệu suất mà tôi đang nói đến là một cái gì đó như New Relic. Mặc dù vậy, mặc dù bạn là những ngày đầu tiên và thậm chí không có bất cứ thứ gì được triển khai, chính bản thân nó sẽ lãng phí thời gian.Nói cách khác, chỉ cần làm cho mã của bạn hoạt động trước khi lo lắng về cách chạy nó một cách tối ưu.

Các vấn đề liên quan