Làm thế nào để xóa đĩa Windows đọc bộ nhớ cache?


13

Để kiểm tra hiệu năng, tôi cần xóa bộ đệm đọc đĩa của Windows. Tôi đã thử googling nhưng tôi không thể tìm thấy bất cứ điều gì ngoài việc khởi động lại hoặc các công cụ thủ công khác. Trước khi tôi nhượng bộ và làm điều đó, tôi muốn biết liệu có ai biết cách xóa đĩa Windows đọc bộ đệm hay không. Tôi đang thử nghiệm trên Windows 7, nhưng tôi cũng quan tâm đến các giải pháp Windows XP.

Câu trả lời:


3

Hoặc điền vào bộ đệm với dữ liệu mà bạn biết sẽ không được sử dụng trong thử nghiệm, sau đó chạy thử nghiệm.


1
Ngoài ra, bạn có thể lấy tất cả RAM có sẵn. Windows sẽ giải phóng bộ đệm tệp để sử dụng RAM đó. Để biết chi tiết, xem câu trả lời được cung cấp bởi Stephen Denne.
Ultralisk

Tôi đã hy vọng cho một cái gì đó ít 'giải quyết' nhưng tôi nghĩ đề xuất của bạn là dễ thực hiện nhất trong một kịch bản thử nghiệm tự động trong tình huống của tôi. Cám ơn vì sự gợi ý.
Sebastiaan M

7

Tôi đã hỏi câu hỏi tương tự trên Stack Overflow

/programming/478340/clear-file-cache-to-repeat-performance-testing

Tôi đã sử dụng Win XP, nhưng giải pháp tốt nhất tôi nghĩ ra là:

  1. Chạy một vài bản sao của MemAlloc
  2. Với mỗi cái, hãy phân bổ các khối lớn bộ nhớ một vài lần
  3. Sử dụng Process Explorer để quan sát việc giảm kích thước Cache hệ thống xuống mức rất thấp
  4. Thoát khỏi các chương trình MemAlloc

3

Để có cái nhìn rõ hơn về Bộ đệm ẩn hệ thống tập tin Windows XP - hãy thử ATM của Tim Murgent - nó cho phép bạn xem cả bộ đệm của bộ đệm của hệ thống tập tin và kích thước Danh sách chờ trong chế độ xem chi tiết và chính xác hơn. Đối với Windows XP - bạn cần phiên bản 1 cũ của ATM có sẵn để tải xuống tại đây vì V2 và V3 yêu cầu Server 2003, Vista hoặc cao hơn.

Bạn sẽ quan sát thấy rằng mặc dù Cacheset sẽ giảm "Cache WS Min" - dữ liệu thực tế vẫn tiếp tục tồn tại dưới dạng danh sách chờ từ nơi nó có thể được sử dụng cho đến khi nó được thay thế bằng thứ khác. Để sau đó thay thế nó bằng một cái gì đó khác, hãy sử dụng một công cụ như MemAlloc, flushmem của Chad Austin hoặc Consume.exe từ Windows Server 2003 Resource Kit Tools.


3

Tôi đã sử dụng RAMMap . Nó có khả năng giải phóng bộ nhớ của một vài loại phân bổ.

Nội dung của bộ đệm tệp có thể được quan sát trong tab "Tóm tắt tệp" và chọn "Danh sách chờ trống" từ menu "Trống" sẽ xóa bộ đệm này.


Trong khi về mặt lý thuyết có thể trả lời câu hỏi, tốt hơn là nên bao gồm các phần thiết yếu của câu trả lời ở đây và cung cấp liên kết để tham khảo.
slm

1

Khởi động lại máy.


Đây là giải pháp 'cái búa lớn'. Xem câu trả lời được cung cấp bởi Stephen Denne.
Ultralisk

1

Cách thực hành tốt nhất là đảm bảo rằng bất kỳ tệp kiểm tra nào bạn đang đo điểm chuẩn đều lớn hơn gấp 2 lần so với bộ đệm của bộ điều khiển mảng (hoặc bộ nhớ os của hệ điều hành nếu điểm chuẩn trong máy khách vm), với tệp kiểm tra tối thiểu 1 GB. Điều này đảm bảo rằng bất kỳ bộ nhớ đệm sẽ bị từ chối. Chúng tôi sử dụng SQLIO để đo điểm chuẩn đĩa; có rất nhiều thông tin trong tài liệu đi kèm.


Một trong những điều tôi đang cố gắng làm là điểm chuẩn dự án của chúng tôi xây dựng nhanh như thế nào trên một số cấu hình. Tôi thực sự không thể tăng kích thước của những tập tin mà tôi nghĩ. :)
Sebastiaan M

1

Báo lại Greg, cách khắc phục sự cố này là đảm bảo rằng tập dữ liệu bạn đang làm việc vượt quá dung lượng RAM khả dụng. Nếu bạn đang thử nghiệm trên nền tảng phần cứng cũng bao gồm số lượng bộ điều khiển và bộ đệm dựa trên đĩa đáng kể, bạn sẽ muốn đảm bảo rằng bạn cũng vượt quá số lượng đó. Điều này sẽ đảm bảo rằng hiệu suất bạn thấy gắn chặt hơn với hiệu suất phần cứng thực sự hơn là tối ưu hóa phần mềm tất cả các lớp bộ nhớ cache giới thiệu.

Điều đó nói rằng, nếu bạn thực sự chỉ muốn lọc bộ nhớ cache của dữ liệu hữu ích trước khi chạy điểm chuẩn mà bạn muốn sử dụng bộ đệm đọc, thì cách thực hiện là đọc trong một tệp có kích thước ngay dưới bộ nhớ đọc bộ nhớ cache của bạn và thực hiện một số thao tác tập tin với nó. Điều này sẽ xóa bộ nhớ cache và điền vào nó với tệp lớn duy nhất này. Khi bạn đóng nó, bộ nhớ cache của bạn được xóa sạch dữ liệu bạn quan tâm một cách hiệu quả . Phần khó khăn là tìm ra tệp đó cần lớn đến mức nào, mà ngày nay rất có thể có kích thước 3GB; tại thời điểm đó bạn có thể cần vài tệp rác 1GB để làm cho nó hoạt động.


0

Tôi nghĩ rằng hầu hết các tùy chọn sẽ là "công cụ thủ công". Trong UNIX, nó là tiêu chuẩn khá tuyệt vời để ngắt kết nối / kết nối lại thiết bị trước mỗi lần chạy chuẩn, thường là "newfs" được đưa vào để đo lường tốt. Tôi không biết liệu bạn có thể sử dụng các công cụ dòng lệnh trong Windows để ngắt kết nối / gắn thiết bị hay không, nhưng nếu tự động hóa là mục tiêu của bạn, thì nó sẽ đáng để tìm kiếm các tiện ích như vậy.


1
Trong Linux, nếu unmount / remuont không phải là một tùy chọn vì một số lý do bạn cũng có thể làm sync; echo 3 > /proc/sys/vm/drop_caches- mặc dù điều này ảnh hưởng đến tất cả bộ đệm / bộ đệm không chỉ những bộ đệm liên quan đến một ổ đĩa cụ thể. Trước đây tôi đã tìm kiếm một thủ thuật tương tự cho Windows nhưng không tìm thấy.
David Spillett

0

Hãy xem câu trả lời này tôi vừa đăng lên câu hỏi của riêng tôi trên StackOverflow.

Về cơ bản: Nếu bạn cố gắng CreateFilexử lý mà không có quyền truy cập ghi chia sẻ, thì nó sẽ xóa và sau đó vô hiệu hóa bộ đệm, ngay cả khi nó trả về lỗi.

Hi vọng điêu nay co ich!

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.