Bạn sẽ chọn hệ thống tệp / thiết lập Linux nào để có tốc độ tốt nhất trong trường hợp sau:

một vài triệu tệp ~ kích thước tệp trung bình 3mb truy cập ngẫu nhiên vào tệp cần có danh sách tất cả các tệp thường xuyên ghi liên tục các tệp mới đọc liên tục các tệp cũ

answer

Điều thực sự quan trọng là cách bạn tổ chức các tệp của mình.

Nếu bạn dự định có một thư mục lớn với ~ 10 triệu tệp thì bất kỳ hệ thống tệp nào cũng sẽ bị ảnh hưởng, mặc dù XFS và ZFS sẽ quản lý khá tốt ngay cả trường hợp xấu nhất này.

Phương pháp được đề xuất là sắp xếp các tệp của bạn trong nhiều thư mục nhỏ hơn, với số lượng tệp hợp lý (~ 32K) để tránh các vấn đề khác nhau nhưng có liên quan (ví dụ: lsđã từng rất chậm đối với các thư mục lớn).

Nếu điều này không thể thực hiện được, tôi sẽ sử dụng XFS hoặc ZFS nhưng chỉ sau khi đã mô phỏng tải dự định trên thiết lập thử nghiệm (lưu ý: ngay cả EXT4 cũng sẽ có hiệu suất tốt, nhưng bạn có thể đạt đến giới hạn inode).

Tải công việc của bạn gần như là tồi tệ nhất có thể đối với một hệ thống tệp mục đích chung. Hàng triệu tệp, liệt kê thường xuyên, đọc và ghi rất nhiều. I / O siêu dữ liệu khổng lồ. Với số lượng tệp lớn, hiếm khi băng thông của việc truyền tệp chính là vấn đề, thay vào đó là số lượng IOPS để truy vấn các mục nhập thư mục và inodes liên tục.

Kiểm tra khối lượng công việc này một cách tổng hợp, đồng thời theo dõi ứng dụng để đảm bảo hoạt động có thể chấp nhận được. Trên quy mô sản xuất thực tế và cấp IOPS. Đảm bảo phù hợp với cấu trúc thư mục, 300 tệp trên mỗi thư mục rất khác với 3.000.000 tệp trên mỗi thư mục. Hãy thử một vài hệ thống tệp khác nhau, dành cho Linux XFS và EXT4.

Có thể bạn sẽ cần bộ lưu trữ SSD rất nhanh và nhiều RAM để thực hiện điều này một cách đầy đủ.

Có thể bạn có hợp đồng hỗ trợ với nhà cung cấp hệ điều hành của mình, nơi bạn có thể nhờ chuyên gia về hiệu suất xem xét.

Nếu yêu cầu hiệu suất có thể chấp nhận được, hãy xem xét các thay đổi ứng dụng. Xem xét việc lưu trữ và truy vấn danh sách tệp từ cơ sở dữ liệu khác với hệ thống tệp. Nhiều cơ sở dữ liệu có thể trả về vài triệu kết quả nhanh hơn một hệ thống tệp bị ràng buộc bởi POSIX nói chung và Linux VFS nói riêng.

Từ những gì bạn mô tả XFS là một kết hợp phù hợp. Nó được tạo ra để xử lý hàng tỷ tệp. Mặc dù vậy, bạn sẽ phải suy nghĩ về bộ nhớ back-end phù hợp cho những gì bạn dự định.