2016-12-26 30 views
8

Ngăn xếp công nghệ của tôi là Redis như một kênh phụ trợ, Postgresql như một cơ sở dữ liệu, Daphne như một máy chủ ASGI, Nginx trước một ứng dụng toàn bộ. Mọi thứ được triển khai bằng Docker Swarm, chỉ với Redis và Database bên ngoài. Tôi có khoảng 20 máy chủ ảo, với 20 máy chủ giao diện, 40 công nhân http và 20 nhân viên websocket. Cân bằng tải được thực hiện bằng cách sử dụng mạng Che phủ lớp phủ Ingress.Làm thế nào để cấu hình kênh django?

Vấn đề là, đôi khi những điều rất kỳ lạ xảy ra liên quan đến hiệu suất. Hầu hết các yêu cầu được xử lý dưới 400 mili giây, nhưng đôi khi yêu cầu có thể mất đến 2-3s, ngay cả khi tải rất nhỏ. Công nhân lập hồ sơ với Thanh công cụ gỡ lỗi Django hoặc trình biên tập dựa trên phần mềm trung gian không hiển thị (thời gian 0,01 giây hoặc lâu hơn)

Câu hỏi của tôi: có cách nào tốt để định hình toàn bộ đường dẫn yêu cầu với kênh django không? Tôi muốn bao nhiêu thời gian mỗi giai đoạn mất, tức là khi yêu cầu được xử lý bởi Daphne, khi nhân viên bắt đầu xử lý, khi nó kết thúc, khi máy chủ giao diện gửi phản hồi cho khách hàng. Hiện tại, tôi không biết cách giải quyết vấn đề này.

+2

Trong trường hợp ai đó tò mò, có vẻ như tác giả của bài đăng này đã đến và hỏi Nhóm Google: https://groups.google.com/forum/#!topic/django-users/_aG8Py_r2QY – raiderrobert

+1

Vâng, đó là câu hỏi của tôi . Tôi đã tìm thấy một số phương pháp hữu ích, một trong số đó là theo dõi lại. Tôi sẽ đăng mô tả chi tiết ở đây sớm. – Valar

+0

Mong muốn được nghe những gì hiệu quả với bạn. – jaywhy13

Trả lời

0

Tại sao không dính công cụ giám sát giống như Kibana hoặc New Relic và theo dõi lý do tại sao và những gì mất quá nhiều thời gian cho một phản ứng tải trọng nhỏ. Nó có thể cho bạn biết thời gian dành cho Python, PostgreSQL và Memcache (Redis).

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