Tôi đang làm việc trên một ứng dụng mà tuần tự viết một tập tin lớn (và không đọc ở tất cả), và tôi muốn sử dụng posix_fadvise()
để tối ưu hóa hành vi hệ thống tập tin.Điều gì posix_fadvise() args cho ghi tập tin tuần tự?
Mô tả chức năng trong manpage gợi ý rằng chiến lược thích hợp nhất sẽ là POSIX_FADV_SEQUENTIAL
. Tuy nhiên, mô tả triển khai Linux nghi ngờ rằng:
Trong Linux,
POSIX_FADV_NORMAL
đặt cửa sổ readahead thành kích thước mặc định cho thiết bị sao lưu;POSIX_FADV_SEQUENTIAL
tăng gấp đôi kích thước này vàPOSIX_FADV_RANDOM
vô hiệu hóa tệp được đọc hoàn toàn.
Vì tôi chỉ đang ghi dữ liệu (ghi đè lên các tệp có thể quá), tôi không mong đợi bất kỳ phần mềm đọc nào. Tôi có nên gắn bó với POSIX_FADV_SEQUENTIAL
hoặc sử dụng POSIX_FADV_RANDOM
để tắt nó không?
Còn các tùy chọn khác, chẳng hạn như POSIX_FADV_NOREUSE
? Hoặc có thể không sử dụng posix_fadvise()
để viết?
Xin lưu ý rằng POSIX_FADV_NOREUSE không được triển khai trong hạt nhân Linux. – smoors