Кешування записів викликає меншу продуктивність?


4

USB 2.0 зовнішні WD 2TB елементи HD.

Підключено до машини Windows XP SP3, кешування запису за замовчуванням вимкнено. Працював добре.

Оскільки вона призначена для постійного приладу (ніколи не видаляється), і на UPS (так що виключення живлення не хвилює), я вирішив увімкнути кешування записів у Windows, щоб підвищити продуктивність.

Спочатку я помітив, що швидкість запису BURST дійсно зросла. Тим не менш, стійкі записи протягом більш ніж однієї хвилини викликали значні уповільнення у всій системі, і це призвело б до майже блокування диска, внаслідок чого будь-які інші операції вводу-виводу були невдалими. Через кілька хвилин вона повернеться до нормального стану.

Інваліди пишуть кешування, перезавантажуються і вуаля, все повертається до нормального. Що дає?

EDIT: Тестується з іншим внутрішнім WD-накопичувачем, підключеним через 3-сторонній кабель IDE-to-USB, однакові результати. Викопати старий Seagate і тестувати його також ...

Відповіді:


1

Я можу придумати дві можливості.

Кешування запису призводить до того, що Windows почне кешувати дані, записані в пам'ять. Оскільки ваш жорсткий диск швидше, ніж зовнішній USB (або інтерфейс USB), файли починають накопичуватися в пам'яті. Залежно від вашого робочого навантаження, це може виштовхувати програми з пам'яті. Отже, у вас зараз є проблема. Дані зчитуються з жорсткого диска. Але тепер Windows повинна переглядати програми з пам'яті, оскільки кеш швидко заповнюється. Це може викликати багато зчитує і записує диск.

Як правило, це не призводить до помилки інших операцій вводу-виводу. Ви повинні опублікувати точні повідомлення про помилку. Ось і є рідкісні та величезні як це може сигналізувати щось гірше, ніж просто повідомлення про помилку ОС.

Друга можливість полягає в тому, що відбувається, коли зовнішній диск отримує команду flush cache. Windows регулярно посилає команду "cache flush" на диски під час більш довгих операцій IO. Це є захистом від втрати даних під час відключення електроживлення. Коли це станеться, Windows перестає надсилати дані, поки кеш диска не буде очищений. Все це, поки ваш джерело дисків все ще обертається, читаючи дані в пам'ять під час підготовки до відправки на зовнішній.

Існує третя можливість, але що дозволяє почати малий.

Навпаки, що швидкість запису сплеску просто вразить користувачів і не є реальною. Windows не надсилає дані швидше, ніж у середині та кінці запису вводу-виводу.

Якщо ви пригадаєте назад до класу статистики, що відбувається з точністю ваших прогнозів, як ваш розмір вибірки стає меншим ?


Невдача вводу-виводу: інші програми не можуть відкрити або досягти блокування файлів на USB-диску. Очевидно, це відображається в різних формах різними програмами. Я особисто написав швидкий тестовий додаток на С і зміг підтвердити, що під час цих "лагів", шанси на open syscall наступний впав до щось на зразок 40%. Коди помилок вказали тайм-аут семафора.
Unsigned

Крім того, ця машина має 4 Гб оперативної пам'яті, не більше 1-1,5 Гб, який використовується під час нормальної роботи. Пік використання за тиждень безвідмовної роботи зазвичай становить від 2 до 2,5 Гб. Внутрішній HD є 500 Гб, з яких ~ 250 Гб вільний в будь-який момент часу. Pagefile має мінімум 2 Гб з можливістю розширення до 10 Гб. Ні використання файлів, ні розподіл ОЗУ, здається, не помітно зростали протягом цих періодів відставання.
Unsigned
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.