Tôi đạt được hiệu suất "đọc ngẫu nhiên" 80MB cho mỗi đĩa "thực" (trục chính). Đây là những phát hiện của tôi.
Vì vậy, trước tiên, hãy quyết định số lượng lưu lượng truy cập bạn cần để đẩy xuống người dùng và dung lượng bạn cần cho mỗi máy chủ.
Bạn có thể bỏ qua lời khuyên thiết lập đĩa được đưa ra bên dưới vì bạn đã có thiết lập RAID5.
Cho phép lấy ví dụ về máy chủ băng thông 1Gbps chuyên dụng có 3 * 2TB đĩa. Giữ đĩa đầu tiên dành riêng cho OS và tmp. Đối với 2 đĩa khác, bạn có thể tạo ra một cuộc tấn công phần mềm (Đối với tôi, nó hoạt động tốt hơn so với cuộc tấn công phần cứng trên bo mạch). Khác, bạn cần phải chia các tập tin của bạn như nhau trên đĩa độc lập. Ý tưởng là để giữ cho cả hai chia sẻ đĩa đọc/ghi tải bằng nhau. Phần mềm raid-0 là lựa chọn tốt nhất.
Nginx Conf Có hai cách để đạt được mức độ cao về hiệu suất sử dụng nginx.
sử dụng directio
aio trên;
directio 512; output_buffers 1 8m;
"Tùy chọn này sẽ yêu cầu bạn có số lượng ram" Khoảng 12-16GB ram là cần thiết.
userland io
output_buffers 1 2m;
"chắc chắn rằng bạn đã thiết readahead để 4-6MB cho cuộc tấn công phần mềm gắn kết" blockdev --setra 4096/dev/md0 (hoặc mount đĩa độc lập)
Thiết lập này một cách tối ưu sẽ sử dụng bộ nhớ cache tập tin hệ thống, và yêu cầu ram ít hơn nhiều. Cần khoảng 8GB ram.
Ghi chú chung:
bạn cũng có thể muốn sử dụng ga băng thông để cho phép 100 kết nối qua băng thông có sẵn. Mỗi kết nối tải xuống sẽ sử dụng 4MB ram hoạt động.
limit_rate_after 2m;
limit_rate 100k;
Cả hai giải pháp trên sẽ mở rộng quy mô một cách dễ dàng để 1k + người sử dụng đồng thời trên một máy chủ 3 đĩa. Giả sử bạn có băng thông 1Gbps và mỗi kết nối được điều chỉnh ở 1Mb/ps Có thêm thiết lập cần thiết để tối ưu hóa ghi đĩa mà không ảnh hưởng đến việc đọc nhiều.
làm cho tất cả các tệp tải lên lên đĩa os chính trên giá trị gắn kết/tmpupload. điều này sẽ đảm bảo không có xáo trộn liên tục trong khi đọc nặng đang diễn ra. Sau đó di chuyển tệp từ/tmpupload bằng lệnh "dd" bằng oflag = direct. cái gì đó như
dd if=/tmpuploads/<myfile> of=/raidmount/uploads/<myfile> oflag=direct bs=8196k
Vì vậy, không đúng :(Đã bao giờ bạn cố gắng xóa các tập tin lớn trên ext2-3 vs xfs vs JFS? Ngoài ra, một cái nhìn tại các kernel mã nguồn sẽ đã tiết lộ cho bạn, mà fs khác nhau trình điều khiển dành thời gian khác nhau trong các phần quan trọng, họ cũng có xu hướng cư xử _radically_ khác nhau dưới áp lực IO cao. –
Xóa tệp lớn không phải là trường hợp sử dụng. Nếu bạn có số, hãy hiển thị chúng. Tôi đứng trước những gì tôi viết. –
số? "có những lời nói dối, dối trá và sau đó là điểm chuẩn" Tôi chưa thấy điểm chuẩn mà không có bất kỳ mục tiêu tiếp thị nào. Tôi đã nói về kinh nghiệm của mình và nguồn nhân Linux có sẵn công khai. Điểm mà tôi nghi ngờ bạn sẽ thấy sự khác biệt có thể đo lường được là vô lý tuy nhiên. –