2012-08-02 37 views
8

Tôi đang thử nghiệm với các thiết lập khác nhau để triển khai các ứng dụng django. Lựa chọn đầu tiên của tôi là sử dụng một máy chủ apache đơn giản với mod_wsgi, mà tôi đã thực hiện trước đó để sử dụng riêng. Vì triển khai hiện tại là để sử dụng công cộng, tôi đang xem xét các tùy chọn khác nhau. Dựa trên thông tin có sẵn trực tuyến, có vẻ như tốt khi có nginx để phục vụ nội dung tĩnh cũng như proxy ngược cho máy chủ nội dung động. Bây giờ, với kiến ​​thức về Apache trước đây của tôi, tôi đã cân nhắc việc sử dụng tương tự cho nội dung động. Nhưng rồi tôi gặp Gunicorn và sau đó là uWSGI. Hiện tại tôi đang triển khai uWSGI. Tôi thấy rằng nó cho phép nhiều giao thức bao gồm http.Giao thức uwsgi có nhanh hơn giao thức http không?

Ưu điểm của việc sử dụng một giao thức so với giao thức kia. Tôi hiểu rằng với yêu cầu của tôi về mở rộng quy mô ứng dụng trên nhiều máy chủ, có nghĩa là tôi không thể sử dụng các ổ cắm Unix, có vẻ như được đề xuất trong một số hướng dẫn. Vì vậy, các lựa chọn khác là TCP socket với uwsgi hoặc với http. Họ có nhiều sự khác biệt về mặt lý thuyết không. Tôi không biết các chi tiết của giao thức uwsgi và muốn biết, nếu sử dụng nó trên giao thức http sẽ làm cho mọi thứ nhanh hơn?

Trả lời

15

Cuối cùng, các nút cổ chai của bạn sẽ không nằm trong các cơ chế định tuyến cụ thể cho các yêu cầu trừ khi bạn thực sự bỏ qua cấu hình. Vì vậy, cho là một sự lãng phí thời gian để tập trung quá nhiều vào các quyết định dựa trên những điều ở cấp độ đó.

Hãy xem bài nói chuyện của tôi từ PyCon để biết một số ngữ cảnh về nơi mà các nút cổ chai thực sự xảy ra.

http://lanyrd.com/2012/pycon/spcdg/

+0

Tôi đã thấy bài nói chuyện của bạn và có cảm giác rằng đây sẽ là câu trả lời của bạn. Nhưng chỉ vì mục đích tri thức hàn lâm, nó có nhanh hơn không? –

+3

Sự khác biệt là trong HTTP người nhận phải phân tích cú pháp cho dấu phân tách trường tiêu đề yêu cầu và điểm cuối của điểm đánh dấu dòng. Trong uwsgi, các byte độ dài nhị phân được kết hợp trong dữ liệu để người nhận biết độ dài của trường là gì và không phải phân tích cú pháp đó. Vì vậy, bạn có thể tiết kiệm một chút thời gian sử dụng uwsgi, nhưng bạn thực sự đang tách lông. Thiết kế của phần mềm phía máy chủ sẽ quan trọng hơn nhiều. Sloppy mã hóa trong thuật toán để xử lý nó sẽ nhanh chóng quét sạch bất kỳ tiết kiệm. Ngay cả tác giả uWSGI cũng sẽ thừa nhận rằng ở cấp độ đó, sự khác biệt là rất nhỏ. –

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