Bối cảnh:Python: Làm thế nào để bạn tìm thấy mức tiêu thụ CPU cho một đoạn mã?
Tôi có một ứng dụng django, nó hoạt động và đáp ứng khá tốt trên tải thấp, nhưng trên tải cao như 100 người dùng/giây, nó chiếm 100% CPU và sau đó do thiếu CPU chậm .
Vấn đề:
- Profiling ứng dụng mang lại cho tôi thời gian thực hiện theo chức năng.
- Lần này tăng khi tải trọng cao.
- Thời gian tiêu thụ có thể do tính toán phức tạp hoặc chờ CPU.
vậy, cách tìm chu kỳ CPU được tiêu thụ bởi một đoạn mã?
Vì, việc giảm mức tiêu thụ CPU sẽ làm tăng thời gian phản hồi.
- tôi có thể đã viết cực kỳ mã hiệu quả và cần phải bổ sung thêm sức mạnh của CPU
HOẶC
- tôi có thể có một số mã ngu ngốc dùng CPU và gây ra chậm?
Mọi trợ giúp đều được đánh giá cao!
Cập nhật:
- Tôi đang sử dụng Jmeter đến hồ sơ webapp của tôi, nó mang lại cho tôi một thông lượng của 2 yêu cầu/giây. [100 người dùng]
- Tôi nhận được thời gian trung bình là 36 giây cho 100 yêu cầu và 1,25 giây thời gian trên 1 yêu cầu.
More Info
- Cấu hình Nginx + Uwsgi với 4 công nhân
- Không cơ sở dữ liệu được sử dụng, sử dụng một câu trả lời từ một API REST
- On 1st nhấn phản ứng của REST API bị lưu trữ , do đó không tạo ra sự khác biệt.
- Sử dụng
ujson
để phân tích cú pháp json.
Tò mò muốn biết:
- Python-Django được sử dụng bởi rất nhiều tổ chức đã cho rất nhiều các trang web lớn, sau đó phải có một số cao cấp công cụ phân tích Debug/Memory-CPU.
- Tất cả những gì tôi tìm thấy là các đoạn mã thông thường thực hiện lược tả.
Bước đầu tiên của tôi trong hồ sơ là xem * (các) chức năng * hầu hết thời gian được sử dụng và họ điều tra lý do tại sao, nếu nó hợp lý và nếu/làm thế nào nó có thể được giảm. * Số tiền * của thời gian (thường) không quan trọng bằng số * tỷ lệ thuận * thời gian. –
Tất cả thời gian thực hiện dường như được phân phối trong suốt ứng dụng. Không có điểm cụ thể nào có vẻ là một vấn đề. –
Dường như? Bạn đã đo chính xác chưa? Xem http://stackoverflow.com/a/582337/851737 để được trợ giúp. – schlamar