Làm cách nào để giảm bộ đệm ghi của Linux cho các thiết bị di động?


8

Khi ghi nội dung vào các thiết bị di động trên Linux (thẻ nhớ USB / ổ cứng, thẻ SD, v.v.), tôi thường thấy tốc độ ghi đáng kinh ngạc trong vài giây đầu tiên, đôi khi theo thứ tự GB / s (điền vào bộ đệm ghi) phút yên tĩnh (bộ đệm thực sự được ghi vào thiết bị).

Đó là sự hiểu lầm. Nó làm cho nó khó để đánh giá tốc độ viết thực tế. Nó gây phiền nhiễu (không thể làm gián đoạn một chương trình trong khi nó đang xóa bộ đệm). Nó có thể gây ra thiệt hại cho FS và ít nhất là nội dung không được ghi nhận khi rút phích cắm thiết bị trong khi thiết bị vẫn được ghi.

Bộ đệm ghi có vẻ là hơn một GB trong trường hợp của tôi. Có cách nào để kiểm soát nó? Tôi muốn giảm nó xuống một giá trị hợp lý hơn.

Lưu ý: Đây không phải là về bộ đệm hệ thống tập tin, hiệu ứng này cũng xuất hiện trên các thiết bị thô

Lưu ý: Tôi không muốn tắt hoàn toàn bộ đệm ghi

Cảm ơn!


1
không bao giờ rút phích cắm thiết bị di động mà không cần umountlấy fs (trong GUI sử dụng nút 'đẩy' trên nút fs được gắn trong cây được hiển thị bởi trình quản lý tệp). Việc umounthoàn thành hiệu quả bất kỳ IO đang chờ xử lý nào và xóa mọi khoản tiền mặt còn tồn đọng.
Serge

(và khi viết trực tiếp thiết bị, ví dụ như với dd, bạn phải đảm bảo sử dụng một cái gì đó giống như synctrước khi tháo thiết bị)
sourcejedi

Câu trả lời:


4

Tôi tìm thấy câu trả lời. Linux 64 bit duy trì bộ đệm ghi lớn (20% bộ nhớ khả dụng!) Theo mặc định. (Thật thú vị, Linux 32 bit tự giới hạn tối đa 180 MB) Để thay đổi kích thước bộ đệm bẩn thành 200 MB, người ta có thể sử dụng

echo 200000000 > /proc/sys/vm/dirty_bytes

HOẶC để sử dụng tỷ lệ phần trăm của RAM, ví dụ 1%:

echo 1 > /proc/sys/vm/dirty_ratio

Thêm thông tin: https://lwn.net/Articles/572911/


1
Cả hai nhân Linux 32 bit và 64 bit đều sử dụng mặc định dirty_ratiolà 20. Tuy nhiên, kernel 32 bit có giới hạn RAM tối đa là 1 GB do giới hạn của kiến ​​trúc x86 32 bit. Do đó, kích thước bộ đệm ghi mặc định tối đa trên hệ thống 32 bit là khoảng 180-200 MB tùy thuộc vào phần cứng (ít nhất là các thiết bị PCI có quyền truy cập DMA sẽ giảm giới hạn RAM có thể sử dụng).
Mikko Rantalainen

Đây không phải là câu trả lời hoàn chỉnh cho câu hỏi ban đầu của bạn. Tôi muốn tăng tốc lưu trữ chậm bên ngoài, không phải lưu trữ nhanh bên trong của tôi ...
đường ống
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.