як повністю очистити кеш файлів на Linux?


9

У тесті на працездатність я хочу обійти вплив кешу системи Linux (включаючи кеш сторінок / кеш inode тощо).

Я спробував прапор O_DIRECT, але виявилося, що прямий введення-виведення все ще "насолоджується" ефектом деякого кешу.

Чи існує ретельний спосіб закрити ефект кеш-системи?


2
У чому сенс такого "нереального" тесту на працездатність? Ви намагаєтеся випробувати те, що жодна сучасна ОС ніколи не дозволить цього зробити.

На жаль, це взагалі нереально, але все-таки працює ядро ​​aio сьогодні. Я так охоче хочу, щоб містер Т. усвідомив, що асинхронні введення / виведення та кеш не є взаємовиключними термінами. Хлопці в Microsoft зрозуміли вже 15 років тому (хоча, безумовно, продуктивність до Vista може бути невтішною, особливо за одночасності). Якийсь індійський хлопець написав патч років тому, але його відхилили.

Відповіді:


14

(це насправді падає так ..) біжи syncспочатку, потім

безкоштовний кеш-сторінок:

echo 1 > /proc/sys/vm/drop_caches

безкоштовні зубні стоматологічні системи та вводи

echo 2 > /proc/sys/vm/drop_caches

безкоштовний кеш-сторінок, стоматологічні системи та індекси:

echo 3 > /proc/sys/vm/drop_caches

Тоді ви можете почати з чистого кешу, але звичайно кешування все-таки спрацює.


я десь чув про цей метод. але таких файлів у мого ubuntu 10.04 немає. тому я не зміг виконати вищезазначені команди.

@tom_cat: Вам потрібно ядро ​​новіше 2.6.16, а Ubuntu 10.04 прийшов з 2.6.32, якщо я не помиляюся, тож це має працювати. Я щойно перевірив встановлення 11.04, на що воно вартує, що має цей запис у програмі (на жаль, тут немає більше 10.04)

@Damon: Так, ти маєш рацію. дуже дякую. Я виявив, що я ввійшов у систему на віддаленій машині старшого ядра.

0

ні, ви не можете обійти кеш. Але, однак, ви можете змусити синхронізувати файлову систему (це означає, очистити кеш і записати дані на диск) за допомогою додаткового системного виклику fsync (3).

Привітання, СК

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.