2011-09-13 39 views
10

Simple câu hỏiNginx Phục vụ tập tin lớn tĩnh

http://mysite.com/bigFile.avi #this file là 800Mb

khi tôi sử dụng liên kết này và tải về bigFile.avi từ trình duyệt của tôi, My Nginx máy chủ nhảy lên 100% CPU trong suốt phiên tải xuống, nội dung tĩnh, không có php. (tập lệnh php thông thường sử dụng CPU 1-3%)

Tôi tự hỏi điều này có bình thường đối với máy chủ của tôi không? Nó tiêu thụ quá nhiều CPU để phục vụ các tệp lớn?

(i thậm chí tắt gzip trong cấu hình nginx, nhưng không nhiều khác biệt)

Trả lời

9

Hãy xem những bài viết này

Tôi sẽ thừa nhận rằng một số điều đó nằm ngoài tôi. Nhưng trong ngắn hạn họ đề nghị vô hiệu hóa sendfile, cho phép aio, và tăng bộ đệm đầu ra của bạn nếu bạn đang gửi lớn (> 4MB) tập tin. Những gì tôi đã lấy đi là cấu hình máy chủ mặc định nhất cho rằng nhiều tệp nhỏ sẽ được gửi, thay vì ít hoặc nhiều tệp lớn. Hai kịch bản khác nhau này có thể yêu cầu một số cấu hình rất khác nhau để hoạt động hiệu quả.

10

Như nginx có thể ghi tập tin lớn trong đĩa trước khi gửi chúng cho khách hàng, nó thường là một ý tưởng tốt để vô hiệu hóa bộ nhớ cache này nếu trang web đang xảy ra để phục vụ các tập tin tĩnh lớn, với một cái gì đó như:

location/{ 
    proxy_max_temp_file_size 0; 
} 
Các vấn đề liên quan