Làm thế nào để xóa hoàn toàn bộ đệm của tập tin trên linux?


9

Trong một thử nghiệm hiệu năng, tôi muốn bỏ qua ảnh hưởng của bộ đệm của hệ thống linux (bao gồm bộ đệm trang / bộ đệm inode và vv).

Tôi đã thử cờ O_DIRECT, nhưng hóa ra I / O trực tiếp vẫn "tận hưởng" hiệu ứng của một số bộ đệm.

Có một cách triệt để để đóng hiệu ứng của bộ đệm hệ thống?


2
Điểm của một bài kiểm tra hiệu suất "không thực" như vậy là gì? Bạn đang cố gắng kiểm tra một cái gì đó mà không hệ điều hành hiện đại nào sẽ không bao giờ cho phép xảy ra.

Thật không may, nó không phải là không thực tế, nó vẫn là cách aio kernel hoạt động ngày nay. Tôi rất mong muốn Mr.T sẽ nhận ra rằng I / O và bộ đệm không đồng bộ không phải là các điều khoản loại trừ lẫn nhau. Đó là điều mà các chàng trai tại Microsoft đã nhận ra từ 15 năm trước (mặc dù hiệu suất được thừa nhận trước Vista có thể gây thất vọng, đặc biệt là dưới sự tương tranh). Một số người Ấn Độ đã viết một bản vá nhiều năm trước, nhưng đã bị từ chối.

Câu trả lời:


14

(nó thực sự giảm nên ..) chạy synctrước, sau đó

miễn phí pagecache:

echo 1 > /proc/sys/vm/drop_caches

miễn phí nha khoa và inodes:

echo 2 > /proc/sys/vm/drop_caches

miễn phí pagecache, nha khoa và inodes:

echo 3 > /proc/sys/vm/drop_caches

Sau đó, bạn có thể bắt đầu với một bộ đệm sạch, nhưng tất nhiên bộ đệm vẫn sẽ hoạt động.


tôi đã nghe nói về phương pháp này ở đâu đó nhưng không có tập tin nào như vậy trên Ubuntu 10.04 của tôi. vì vậy tôi không thực hiện được các lệnh trên.

@tom_cat: Bạn cần một kernel mới hơn 2.6.16 và Ubuntu 10.04 đi kèm với 2.6.32 nếu tôi không nhầm, vì vậy điều này sẽ hoạt động. Tôi vừa kiểm tra bản cài đặt 11.04 của mình xem nó có giá trị gì không, có mục nhập này không (không may là không có 10.04 ở đây nữa)

@Damon: Vâng, bạn nói đúng. cám ơn rất nhiều. Tôi đã tìm thấy rằng tôi đã đăng nhập vào một máy từ xa của kernel cũ.

0

không, bạn không thể bỏ qua bộ đệm. Tuy nhiên, tuy nhiên, bạn có thể buộc đồng bộ hóa hệ thống tệp (có nghĩa là xóa bộ nhớ cache và ghi dữ liệu vào đĩa) bằng cách gọi hệ thống bổ sung fsync (3).

Chúc mừng, CK

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.