Кэширование записей для жестких дисков. Оптимизация работы жесткого диска. И? Как это работает

Для того чтобы ускорить HDD существует два способа: создание RAM-диска и использование программного кэширования.

С RAM-диском вроде как всё ясно - при его использовании SSD по скоростям и рядом не «валяется», но существенный недостаток в том, что требуется от 16Гб RAM (чтобы "серьёзный" софт влезал) и система при этом грузится довольно медленно, по сравнению с SSD.

В этой статье мы рассмотрим малоизвестный программный метод кэширования данных в оперативной памяти. Что для этого надо? Из аппаратных требований желательно от 8Гб RAM с учётом ускорения нескольких HDD в рамках одной системы (если они есть). В обычных случаях, выделения оперативной памяти в размере 2Гб вполне достаточно.

Теперь давайте немного поговорим о программах, с помощь которых можно реализовать вышеуказанный метод:

Если говорить о программе Super Cache, то в глаза сразу бросается жирный минус – она платная. При этом конечно же быстрее работает, но говорят её инсталляция сродни подвигу – одна ошибка и компьютер не грузится, так что для неопытного пользователя это точно не самый лучший вариант.

А вот вторая программа – Fancy Cache, для поставленной задачи подходит довольно неплохо. Текущая версия 0.8.0 находится тут (на английском языке): http://www.romexsoftware.com/en-us/fancy-cache/download.html Есть 2 версии Volume Edition и Disk Edition - соответственно на раздел или весь диск. Ставьте ту, которая вам нужна. Ключи разработчики раздают бесплатно всем желающим на каждые 180 дней, тут: http://www.romexsoftware.com/bbs2/en-us/viewforum.php?f=24&sid=

Итак, устанавливаем программу и регистрируем её, запускаем. Интерфейс программы одновременно прост и сложен для понимания:


Перейдём к делу. Выбираем раздел или диск, в зависимости от программы.

Block Size - рекомендуемое программой значение, в зависимости от размера диска или раздела. Cache Size - рекомендую 2048 Гб для одного HDD, можете поэкспериментировать с бОльшими и мЕньшими значениями. Algorithm - не трогаем, по умолчанию LFU-R. Caching Strategy - оставляем по умолчанию Read/Write.

Ставим галку на Defer-Write. Ставим задержку от 300 секунд. Внимание, в случае перебоев электроэнергии, если нет ИБП, возможна потеря данных! Здесь ставим галку на Release After Write для того, чтобы кэш данных уничтожался в памяти после записи на диск. Можно не ставить, если эти данные читаются. No Write-Flush At Shutdown и Averaging Write Amount не трогаем, это специальные режимы. Overcome HDD C1 Issue - владельцам SSD не надо ставить, остальным думаю стоит, если используется замедление HDD для экономии энергии (я это так понял).

Level-2 Cache - используется только владельцами 32-битных систем, чтобы программа могла увидеть оперативную память за пределами 3,5 Гб. Одно из немногих решений, позволяющее это сделать. Владельцам 64-битных систем Level-2 Cache ставить не нужно.

Жмём Start Caching (потом она переименуется в Configure Caching) и перезагружаемся.

А теперь красивые циферки, ради чего всё и затеяно, при настройке Defer-Write в 3000 сек:


Профит. Как видим любой SSD плачет горючими слезами:) Но для владельцев SSD тоже актуально, т.к. в 2Гб сокращает количество запросов к HDD/SSD в 2 раза, что не может не влиять на надёжность дисков в лучшую сторону.

В общем экспериментируйте, разработка того стоит:)

Хочу сразу сказать, что это не тупо мое мнение или мне кажется то, что дополнительный кэш ускоряет диск, так оно и есть на самом деле (недаром пользуюсь уже два года примерно). Но обо всем по порядку. Во-первых жесткий диск на самом деле не ускоряется, просто процесс работы Windows с файловой системой оптимизируется по максимуму.

Кэш есть кэш. Данные которыми вы пользовались недавно заносятся в него, программы которые ведут активную работу с файлами — в большинстве случаев записывают в кэш, он уже в определенный интервал скидывает их на жесткий диск. Этот процесс в новой версии софта уже НЕ глючит, то есть все проходит плавно (при использовании режима Idle-Flush).

Про утилиту PrimoCache

Я вот почему рассказываю об этой утилите, она кстати называется PrimoCache, и я ей пользуюсь с первой ее версии, и на сегодня она уже ну очень здорово усовершенствовалась.

Еще раз, это программное решение кэша выполнено в виде драйвера. Сам кэш создается из оперативной памяти, то есть чтобы его сделать у вас должно быть ее как бы немало, ну 4-8 гб хотя бы.

Программа НЕ бесплатная, но можно пользоваться 60-дней бесплатно, впрочем кому она реально станет очень полезной, то обойдут это ограничение не взламывая саму программу

Не знаю, стоит ли этот кэш ставить чтобы улучшить производительность игр — тут я не знаю, потому что они данные загрузили в оперативку и работают с ними. В игре я заметил вот что — первый раз уровень игры загружался как обычно, а потом, после получаса игры все уже как бы быстрее работало, прорисовывалось. Но файловая система вообще мало влияет на игру, тут только загрузка может увеличится, в игре важна видеокарта в первую очередь.

Особенности программы PrimoCache

В общем, не буду долго расписывать, а напишу все особенности программы в виде списка, так думаю будет удобнее.

  • Как я уже писал, для работы нужно немного свободной оперативки, хотя бы 1-2 Гб. Это позволит снять пиковые кратковременные нагрузки на жесткий диск, например одна из таких нагрузок может быть открытие кучу вкладок в браузере. Что это вообще происходит? Каждая вкладка, это страница и в ней есть картинки, скрипты ну и еще какие-то элементы. Почти все браузеры это кэшируют, так вот, все это записывается на жесткий диск, а это все мелкие файлы (!), и вот куча вкладок и создает процесс записи большого количества мелких файликов на диск! Когда есть кэш PrimoCache, то он принимает нагрузку эту всю на себя, а скорость работы оперативки куда выше чем жесткого диска, в итоге браузер работает немного быстрее.
  • По поводу кэширования Windows. Да, тут я не спорю, она также отлично кэширует, но делает она это куда проще — просто кэшируя файлы! А PrimoCache кэширует блоки файлов и ему все равно что это за блоки — просто программа какая-то или системные данные/библиотеки.
  • Риск потерять данные есть, но в новых версиях PrimoCache есть алгоритм работы такой, при котором данные будут скидываться в режиме простоя и постепенно. Тем не менее, если поставить интервал например 4 секунды, то сбрасывать данные будут почти сразу и при этом не мешая другим программам работать с диском. В общем у меня не было еще такого, чтобы я потерял данные, хотя использую утилиту около двух лет.
  • Еще одно преимущество такого кэша в том, что если система с таким кэшем работает уже долго, то все основные данные уже будут кэшированы. Если нужно будет открыть программу, которую вы НЕ открывали и разумеется ее в кэше НЕТ, то она откроется БЫСТРЕЕ, так как этому процессу никакие обращения к диску мешать НЕ будут, ибо все они будут кэшированы.
  • Драйвер программы (это и есть основной механизм) не нагружает процессор вообще, сколько я не тестировал и не проверял — нагрузки нет при любом обьеме.
  • При выключении Windows кэш будет также автоматически сбрасываться на диск, и только потом уже система выключится.
  • В качестве кэша также можно использовать SSD-накопитель, что даже плюс, так как в режиме постоянного плавного сброса можно использовать какой-то дешевый SSD, а потом если что — заменить. Но SSD дешевле да и больше обьем, чем у оперативки, и при этом обьема хватит чтобы кэшировать почти все то, чем вы пользуетесь ежедневно. Если использовать SSD-кэш на 128 Гб например, то вообще вы редко будете замечать скорость работы файловой системы, сопоставимую с жестким диском.
  • Программа работает стабильно — никаких глюков мной выявлено не было вообще, то есть не было такого что она зависала, даже в первое версии утилиты.
  • Те кто часто работают с виртуальными машинами, как например я, реально смогут оценить эффект от PrimoCache, который будет кэшировать в том числе блоки виртуального жесткого диска, что в свою очередь очень ускоряют файловую систему виртуальной машины (я лично пользуюсь VMware, но в VirtualBox думаю также ускорит). Кстати с таким кэшем, виртуальная машина в спящий режим переходит мгновенно.
  • Также эффект очень заметен при установке программ. Любая программа, особенно тяжелая со многими установочными файлами, папками, будет установлена намного быстрее с таким кэшем, чем без него (опять же, при установке записываются очень много мелких файлов на диск!). Я лично проверял на офисном пакете от Microsoft и OpenOffice.

Ну, примерно так все, еще раз напишу я программу не рекламирую, просто лично для меня она ну очень полезной оказалась.

Установка PrimoCache

Вроде бы все что нужно уже написал и можно приступать к установке, ничего сложного тут нет, переходим на эту страничку и оттуда скачиваем последнюю версию супер программки для ускорения жесткого диска.


У нас это версия v2.2.0, выбираем Desktop Edition, разницы с серверной версией почти нет, там она только в кэше который создается то ли для всех разделов, то ли для одного, честно говоря не помню, серверную лучше использовать на серверах Ну и еще одно отличие в поддержке, серверная как я понимаю имеет другой уровень поддержки как и совсем другую цену за лицензию.

В общем распаковали архив с утилитой, запускаем ее. Как обычно, нажимаем Next, потом принимаем лицензионное соглашение, снова Next, путь установки без причины не меняем:


Ну и снова Next В общем с установкой у вас проблем возникнуть не должно, все предельно просто. Я не написал еще одно, программа на английском, но уверяю вас что в ней вы сможете разобраться без проблем! Я же как-то разобрался, хотя и плохо знаю английский

После установки программы нужно будет перезагрузится.


В общем, я сделал перезагрузку, наверно вы тоже ну или читаете дальше, в общем проблем нет — все работает, драйвер уже в работе, но кэш для жесткого диска еще нужно настроить.

На рабочем столе будет ярлык PrimoCache, запускаем его и видим вот такой интерфейс программы:


Вверху кнопки, а внизу будет отображен статус работы. Чтобы создать кэш, нужно нажать на первую верхнюю кнопку с зелененьким плюсиком.

Теперь давайте создадим кэш, у меня на компе 2 Гб ОЗУ, что не так много, но любой кэш если и не будет ускорять жесткий диск, то точно продлит срок службы его, избавляя от многочисленных однотипных запросов к нему.

Итак первое, что вам нужно — это указать для какого диска вы хотите создать кэш. Сразу скажу, что вы можете не заморачиваться и выбрать все диски — то есть поставить везде главные галочки, вот тут:


Ну, если у вас там жестких дисков несколько, то и галочек будет несколько

Выбрали диски, нажимаем Next. Тут нужно выбрать стратегию — то есть какой режим кэша для жесткого диска вы хотите? Давайте я перечислю какие они могут быть.


Нажимаем Next, теперь уже будет открыто главное окно настроек. Теперь смотрите, перед тем как настраивать, давайте немного разберемся — сколько нужно отводить памяти для такого кэша жесткого диска?

  • Если у вас современная версия Windows, а это я имею ввиду семерка, восьмерка или десятка, то считаем так. Минимум откидываем 1 Гб на саму Windows, потом если у вас есть какие-то ресурсоемкие программы, то они тоже могут потребовать 1-2 Гб ОЗУ. Если у вас например 8 Гб, то можете дать на кэш 2 Гб или даже 4 Гб в зависимости от того, что вы делаете на компе.
  • Если у вас Windows XP, то на нее и на все программы думаю хватит 2 Гб, а остальное можно кинуть на кэш. В любом случае, не старайтесь задать тот размер, который программа не разрешает, это просто приведет к диким тормозам, так как начнет активно работать своппинг — то есть файл подкачки (из-за нехватки оперативки).
  • Сделайте так — запустите комп, включите все нужные программы, и потом уже задавайте кэш из той памяти, которая осталась.
  • У меня лично 8 Гб ОЗУ, и из них 4 Гб я выделил под кэш, так как мне важна быстрая работа виртуальной машины, при этом что-то ресурсоемкое чем офис я не запускаю.

В общем вы можете спокойно поэкспериментировать, даже минимальный кэш для жесткого будет очень полезным, так как ему будет просто легче работать.

Итак, как вы уже поняли, кэш задается вот тут:


Теперь настройки справа, там будет такое как Block Size, его нужно выставить таким, как у вашего жесткого диска, то есть я имею ввиду размер кластера. Если вы не знаете какой — не беда, пропускайте этот шаг, так как после запуска кэша будет инфа о том, какой у вас кластер и потом сможете изменить.

Cache Strategy — это выбор стратегии, но мы уже выбрали и другой тип использовать я не рекомендую, вам вряд ли он будет эффективнее.

Опция Enable Defer-Write. Это очень и очень важная опция, тут вы указываете через сколько секунд сбрасывать кэш на жесткий диск, по умолчанию стоит 10 секунд, можете это время не трогать, а можете установить меньше в целях безопасности. У меня стоит 8 секунд.

Теперь напротив этой опции будет кнопка, она означает за метод скидывания данных, вот эта кнопка:

Вот там есть меню Write Mode, в котором есть пять режимов, вы можете поэкспериментировать с ними, а можете сразу выставить тот, который советую я — это Idle-Flush. В этом режиме данные будут скидываться в то время, когда диск особо ничем не занят, и при этом скидываться будут не на полную скорость, чтобы не забивать скорость самого диска. Тип Native это просто чистый режим, то есть данные просто будут записываться через каждый указанный вами промежуток времени. Есть еще режим Intelligent, я его также пробовал и там также могут быть тормоза системы, в общем мне понравился только Idle-Flush.

Но почему могут быть тормоза системы при некоторых режима? Дело в том, что когда приходит время скидывания данных, то PrimoCache их записывает на диск с максимальной скоростью. А это может тупо забить диск и он будет в это время очень медленно работать, это время конечно будет очень малым, но все же это было основной проблемой первой версии программы, потом уже исправили.


Еще нужная опция это Free Cache on Written — очистка кэша, который был занят данными для записи. То есть те данные, которые были записаны в кэш, а потом уже на физический диск, то в кэше они уже будут удалены, так как просто не нужны. Это не относится к данным чтения. Эту галочку лучше включить.

Опция Flush on Sleep нужна для того, чтобы скидывать кэш перед переходом в режим сон.

Еще есть опция Prefetch Last Cache, это чтобы данные, которые были при выключении Windows, потом при включении автоматически заносились в кэш. С одной стороны опция полезна, а с другой, при старте Windows она и так что-то загружает, включает, в общем и при этом еще будет работать кэш, который возможно будет восстанавливать в кэш уже полу-просроченные данные или просто неактуальные. Эту опцию лично я не включал, можете попробовать

В общем я создал кэш на 256 мб, это тоже хорошо, в любом случае ЛУЧШЕ чем его нет, особенно если у вас старенький жесткий диск как у меня, моему то лет десять уже


Теперь можно нажать два раза по кэшу и выставить уже тот размер кластера, который у вашего жесткого диска (именно он и показан напротив раздела в созданном уже кэше!), то есть 4 кб в моем случае.


Внизу программы вы можете посмотреть статистику работы, в основном важны два параметра, это:

  • Deferred Blocks, тут будет указано количество блоков, которые в кэше и которых еще нет на жестком диске, но после того как они будут записаны, то тут цифра будет уменьшаться до нуля.
  • Free Cache — сколько свободного кэша у вас есть, то есть можно понять сколько примерно данных уже кэшировано.

Другие параметры уже не столь важны, самое главное чтобы не очень много было блоков Deferred Blocks, то есть этим хочу сказать чтобы указанный интервал был достаточный для того, чтобы там регулярно проводилось скидывание данных. Чтобы вы ничего не потеряли, мало ли, если свет выключится или зависнет Windows, ну, много может быть вариантов. Если у вас ИБП, то вообще супер, можно поставить хоть минуту. Но у меня есть ИБП, но все равно стоит 8 секунд


Вверху будет кнопка дополнительных настроек:


Можно включить опцию Launch PrimoCache GUI application at Windows startup — чтобы после включения Windows запускалась программа уже с открытым главным окном статистики, а также может вам будет интересна опция Minimize to the system tray when closed — это чтобы при закрытии главного окна она переходила в трей и там сидела со своим значком Остальные опции лучше не трогать.

А теперь еще кое о чем, я не советую при таком кэше использовать спящий режим, все таки не знаю насколько это стабильно будет все работать, лично я ни разу не пользовался спящим режимом. С опцией предварительной загрузки вы можете поэкспериментировать, если у вас ноутбук и вы просто сидите в интернете, пользуетесь браузерами, то вполне возможно что эта опция будет вам нужной. Вы включили ноутбук, загрузилась Windows, и уже скоро все данные в кэше. Все ваши браузеры откроются мгновенно, и остальные программы.

Ну и еще, если у вас очень большой кэш, например 8 Гб, то лучше не рисковать и выставить небольшой интервал скидывания данных, например десять секунд. Для надежной работы при использовании большого времени задержки работы Defer-Write для стационарного компьютера для безопасности от потери данных при внезапном отключении питания необходимо использовать UPS!

Ну, на этом все, надеюсь что вам статья была интересной и полезной, и вы может быть решили задачу о том, как ускорить жесткий диск хоть немного

15.01.2016

Кэш память – это сверх быстрая память, которая по сравнению с оперативной памятью имеет повышенное быстродействие.

Кэш память дополняет функциональное значение оперативной памяти.
При работе компьютера все вычисления происходят в процессоре, а данные для этих вычислений и их результаты хранятся в оперативной памяти. Скорость работы процессора в несколько раз превосходит скорость обмена информацией с оперативной памятью. Учитывая, что между двумя операциями процессора может выполняться одна или несколько операций с более медленной памятью, получаем, что процессор должен время от времени простаивать без работы и совокупная скорость компьютера падает.

Кэш-памятью управляет специальный контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память, т.е. кэш-контроллер загружает в кэш-память нужные данные из оперативной памят-и, и возвращает, когда нужно, модифицирован-ные процессором данные в оперативную память.

Кэш память процессора выполняет примерно ту же функцию, что и оперативная память. Только кэш - это память встроенная в процессор и потому быстрее оперативной памяти, отчасти благодаря своему положению. Ведь линии связи, идущие по материнской плате, и разъем пагубно влияют на скорость. Кэш современного персонального компьютера расположен прямо на процессоре, благодаря чему удалось сократить линии связи и улучшить их параметры.

Кэш-память используется процессором для хранения информации. В ней буферизируются самые часто используемые данные, за счет чего, время очередного обращения к ним значительно сокращается.

Во всех современных процессорах имеется кэш (по-английски - cache) - массив сверхскоростной оперативной памяти, являющейся буфером между контроллером сравнительно медленной системной памяти и процессором. В этом буфере хранятся блоки данных, с которыми CPU работает в текущий момент, благодаря чему существенно уменьшается количество обращений процессора к чрезвычайно медленной (по сравнению со скоростью работы процессора) системной памяти.

Тем самым заметно увеличивается общая производительность процессора.
При этом в современных процессорах кэш давно не является единым массивом памяти, как раньше, а разделен на несколько уровней. Наиболее быстрый, но относительно небольшой по объему кэш первого уровня (обозначаемый как L1), с которым работает ядро процессора, чаще всего делится на две половины - кэш инструкций и кэш данных. С кэшем L1 взаимодействует кэш второго уровня - L2, который, как правило, гораздо больше по объему и является смешанным, без разделения на кэш команд и кэш данных.

Некоторые десктопные процессоры, по примеру серверных процессоров, также порой обзаводятся кэшем третьего уровня L3. Кэш L3 обычно еще больше по размеру, хотя и несколько медленнее, чем L2 (за счет того, что шина между L2 и L3 более узкая, чем шина между L1 и L2), однако его скорость, в любом случае, несоизмеримо выше, чем скорость системной памяти.

Кэш бывает двух типов: эксклюзивный и не инксклюзивный кэш. В первом случае информация в кэшах всех уровней четко разграничена - в каждом из них содержится исключительно оригинальная, тогда как в случае не инксклюзивного кэша информация может дублироваться на всех уровнях кэширования. Сегодня трудно сказать, какая из этих двух схем более правильная - и в той, и в другой имеются как минусы, так и плюсы. Эксклюзивная схема кэширования используется в процессорах AMD, тогда как не эксклюзивная - в процессорах Intel.

Эксклюзивная кэш-память

Эксклюзивная кэш-память предполагает уникальность информации, находящейся в L1 и L2.
При считывании информации из ОЗУ в кэш - информация сразу заносится в L1. Когда L1 заполнен, то, информация переносится из L1 в L2.
Если при считывании процессором информации из L1 нужная информация не найдена, то она ищется в L2. Если нужная информация найдена в L2, то кэши первого и второго уровня обмениваются между собой строками (самая "старая" строка из L1 помещается в L2, а на ее место записывается нужная строка из L2). Если нужная информация не найдена и в L2, то обращение идет к оперативной памяти.
Эксклюзивная архитектура применяется в системах, где разность между объемами кэшей первого и второго уровня относительно невелика.

Инклюзивная кэш-память

Инклюзивная архитектура предполагает дублирование информации, находящейся в L1 и L2.
Схема работы следующая. Во время копирования информации из ОЗУ в кэш делается две копии, одна копия заносится в L2, другая копия - в L1. Когда L1 полностью заполнен, информация замещается по принципу удаления наиболее "старых данных" - LRU (Least-Recently Used). Аналогично происходит и с кэшем второго уровня, но, поскольку его объем больше, то и информация хранится в нем дольше.

При считывании процессором информации из кэша, она берется из L1. Если нужной информации в кэше первого уровня нет, то она ищется в L2. Если нужная информация в кэше второго уровня найдена, то она дублируется в L1 (по принципу LRU), а затем, передается в процессор. Если нужная информация не найдена и в кэше второго уровня, то она считывается из ОЗУ.
Инклюзивная архитектура применяется в тех системах, где разница в объемах кэшей первого и второго уровня велика.

Однако Кэш-память малоэффективна при работе с большими массивами данных (видео, звук, графика, архивы). Такие файлы просто не помещаются в КЭШ, поэтому все время приходится обращаться к оперативной памяти, или даже к HDD. В таких случаях все преимущества исчезают.Потому-то бюджетные процессоры (например, Intel Celeron) с урезанным КЭШем так популярны, что на производительность в мультимедийных задачах (связанных с обработкой больших массивов данных) объем КЭШа сильно не влияет, даже несмотря на урезанную частоту работы шины Intel Celeron.

Кэш-память на жестком диске

Как правило, на всех современных жестких дисках есть собственная оперативная память, называемая кэш-памятью (cache memory) или просто кэшем. Производители жестких дисков часто называют эту память буферной. Размер и структура кэша у фирм-производителей и для различных моделей жестких дисков существенно отличаются.

Кэш-память выступает в роли буфера для хранения промежуточных данных, которые уже считаны с жесткого диска, но еще не были переданы для дальнейшей обработки, а также для хранения данных, к которым система обращается довольно часто. Необходимость наличия транзитного хранилища вызвана разницей между скоростью считывания данных с жесткого диска и пропускной способностью системы.

Обычно кэш память используется как для записи данных так и для чтения, но на SCSI дисках иногда требуется принудительное разрешение кэширования записи, так обычно по умолчанию кэширование записи на диск для SCSI запрещено. Хоть это и противоречит вышесказанному, но размер кеш-памяти не является решающим для повышения эффективности работы.

Более важна организация обмена данными с кэшем для увеличения производительности диска в целом.
Кроме этого на производительность в целом влияет алгоритмы работы управляющей электроники, предотвращающие ошибки при работе с буфером (хранение неактуальных данных, сегментирование и т.д.)

В теории: чем больше будет объем кеш памяти, тем выше вероятность, что необходимые данные находятся в буфере и не нужно будет «беспокоить» жесткий диск. Но на практике случается, что диск с большим объемом кэш-памяти мало чем отличается по производительности от жесткого диска с меньшим объемом, такое случается при работе с файлами большого размера.

Если вы хотите узнать, что такое кэш-память жесткого диска и как она работает, эта статья для вас. Вы узнаете, что это такое, какие функции он выполняет и как влияет на работу устройства, а также о достоинствах и недостатках кэша.

Понятие кэш-памяти жесткого диска

Жесткий диск сам по себе - довольно неторопливое устройство. По сравнению с оперативной памятью, жесткий диск работает на несколько порядков медленнее. Этим же обуславливается падение производительности компьютера при нехватке оперативной памяти, так как недостача компенсируется жестким диском.

Итак, кэш-память жесткого диска — это своеобразная оперативная память. Она встроена в винчестер и служит буфером для считанной информации и последующей передачи его в систему, а также содержит наиболее часто используемые данные.

Рассмотрим, для чего нужна кэш-память жесткого диска.

Как было отмечено выше, чтение информации с жесткого диска происходит весьма неторопливо, так как движение головки и нахождение необходимого сектора занимает много времени.

Необходимо уточнить, что под словом "медленно" имеются в виду миллисекунды. А для современных технологий миллисекунда - это очень много.

Поэтому, как и кэш жесткого диска хранит в себе данные, физически прочитанные с поверхности диска, а также считывает и хранит в себе секторы, которые вероятно будет запрошены позднее.

Таким образом уменьшается количество физических обращений к накопителю, при этом увеличивается производительность. Винчестер может работать, даже если хост-шина не свободна. Скорость передачи может увеличиваться в сотни раз при однотипных запросах.

Как работает кэш-память жесткого диска

На этом остановимся подробнее. Вы уже примерно представляете, для чего предназначена кэш-память жесткого диска. Теперь выясним, как она работает.

Представим себе, что жесткому диску приходит запрос на считывание информации в 512 КБ с одного блока. С диска берется и передается в кэш нужная информация, но вместе с запрашиваемыми данными заодно считывается несколько соседних блоков. Это называется предвыборкой. Когда поступает новый запрос на диск, то микроконтроллер накопителя сначала проверяет наличие этой информации в кэше и если он находит их, то мгновенно передает системе, не обращаясь к физической поверхности.

Так как память кэша ограничена, то самые старые блоки информации заменяются новыми. Это круговой кэш или цикличный буфер.

Методы повышения скорости работы жесткого диска за счет буферной памяти

  • Адаптивная сегментация. Кэш-память состоит из сегментов с одинаковыми объемами памяти. Так как размеры запрашиваемой информации не могут постоянно быть одинакового размера, то многие сегменты кэша будут использоваться нерационально. Поэтому производители начали делать кэш-память с возможностью замены размеров сегментов и их количества.
  • Предвыборка. Процессор винчестера анализирует запрошенные ранее и запрашиваемые на текущий момент данные. На основе анализа он переносит с физической поверхности информацию, которая с большей долей вероятности будет запрошена в следующий момент времени.
  • Контроль пользователя. Более продвинутые модели жестких дисков дают возможность пользователю контролировать выполняемые операции в кэше. Например: отключение кэша, установление размера сегментов, переключение функции адаптивной сегментации или отключение предвыборки.

Что дает устройству больший объем памяти кэша

Теперь узнаем какими объемами оснащают и что дает кэш-память в жестком диске.

Чаще всего можно встретить винчестеры с объемом кэша в 32 и 64 МБ. Но остались еще и на 8 и 16 МБ. В последнее время стали выпускаться лишь на 32 и 64 МБ. Значительный прорыв в быстродействии произошел, когда вместо 8 МБ стали использовать 16 МБ. А между кэшами объемом в 16 и 32 МБ особой разницы уже не чувствуется, как и между 32 и 64.

Среднестатистический пользователь компьютера не заметит разницы в производительности винчестеров с кэшем в 32 и 64 МБ. Но стоит отметить, что кэш-память периодически испытывает значительные нагрузки, поэтому лучше приобретать винчестер с более высоким объемом кэша, если есть финансовая возможность.

Основные достоинства кэш-памяти

Кэш-память имеет много достоинств. Мы рассмотрим лишь основные из них:


Недостатки кэш-памяти

  1. Не увеличивается скорость работы винчестера, если данные записаны на дисках случайным образом. Это делает невозможным предвыборку информации. Такой проблемы можно частично избежать, если периодически проводить дефрагментацию.
  2. Буфер бесполезен при чтении файлов, объемом большим, чем может поместиться в кэш-память. Так, при обращении к файлу размером в 100 МБ, кэш в 64 МБ будет бесполезен.

Дополнительная информация

Вы теперь знаете, жесткого диска и на что влияет. Что еще необходимо знать? В настоящее время существует новый тип накопителей - SSD (твердотельные). В них вместо дисковых пластин используется синхронная память, как во флешках. Такие накопители в десятки раз быстрее обычных винчестеров, потому наличие кэша бесполезно. Но и такие накопители имеют свои недостатки. Во-первых, цена таких устройств увеличивается пропорционально объему. Во-вторых, они имеют ограниченный запас цикла перезаписи ячеек памяти.

Еще существуют гибридные накопители: твердотельный накопитель с обычным жестким диском. Преимуществом является соотношение высокой скорости работы и большим объемом хранимой информации с относительно низкой стоимостью.

Windows 7 использует жесткий диск для выборки документов и данных приложений, а также для временного хранения данных в страничном файле. Поэтому оптимизация работы жесткого диска может значительно повысить общую производительность системы Windows 7. В следующих нескольких разделах приводятся некоторые советы касательно того, как это можно делать.

Изучение показателей производительности жесткого диска

Если необходимо добавить в систему еще один жесткий диск, начинать следует с его проверки, а именно - с изучения его теоретических показателей производительности. Наиболее важно обратить внимание на три следующих вещи: скорость работы этого жесткого диска, размер поддерживаемого им кэша и время поиска нужной дорожки.

Скорость работы жесткого диска

Под скоростью работы жесткого диска подразумевается то, насколько быстро вращается шпиндель диска, и потому она измеряется в количестве оборотов в минуту (об/мин). В целом, чем выше значение оборотов в минуту, тем лучше производительность диска. В большинстве жестких дисков скорость вращения составляет 7200 об/мин, хотя в более старых дисках она может быть всего 5400 об/мин. Более старых дисков следует избегать, поскольку их показатели производительности выглядят значительно ниже, а стоимость не намного отличается от стоимости дисков с 7200 об/мин. Кроме того, доступны также диски со скоростью вращения 10 000 об/мин, которые существенно повышают производительность.

Кэш жесткого диска

Под кэшем жесткого диска подразумевается встроенная в него область оперативной памяти. Эта память применяется для хранения часто используемых фрагментов данных. В случае обнаружения необходимых данных в кэше жесткого диска ЦП удается экономить время, поскольку это позволяет ему загружать данные прямо в память вместо того, чтобы просить жесткий диск извлекать их с поверхности диска. Чем больше размер кэша жесткого диска, тем больше данных в нем может храниться, и, следовательно, тем выше вероятность того, что ЦП удастся найти необходимые данные в кэше; в результате общая производительность жесткого диска будет выше. Недорогие жесткие диски обычно поставляются с кэшем объемом 2 Мбайт, в то время как у типичных дисков объем кэша, как правило, составляет 8 либо 16 Мбайт. У некоторых высококлассных дисков объем кэша может достигать 32 Мбайт.

Для любого существующего диска процесс оптимизации представляет собой тот же процесс обслуживания и потому требует реализации соответствующего плана. Например, для жесткого диска такой план может подразумевать выполнение следующих действий:

  • наблюдение за объемом свободного пространства на диске, чтобы его не становилось слишком мало;
  • периодическое удаление с диска любых ненужных файлов;
  • удаление любых неиспользуемых программ и устройств;
  • частое выполнение проверки всех разделов на ошибки;
  • регулярное проведение дефрагментации разделов. Отключение сжатия и шифрования

Отключение сжатия и шифрования

В случае использования на диске разделов с файловой системой NTFS, Windows 7 позволяет осуществлять сжатие файлов для экономии места, а также шифрование файлов в целях безопасности. (“Преобразование разделов FAT16 и FAT32 в NTFS ”.) Однако с точки зрения производительности технологии сжатия и шифрования лучше без надобности не применять, поскольку обе эти технологии замедляют доступ к диску из-за процессов, связанных с процедурами сжатия/восстановления и шифрования/дешифрования.

Отключение индексирования содержимого файлов

В Windows 7 существует фоновый процесс, который называется индексатором и индексирует содержимое диска на лету по мере добавления или удаления данных. Это значительно ускоряет работу средств поиска в Windows 7 (в том числе и средства мгновенного поиска), поскольку позволяет Windows 7 знать о том, как выглядит содержимое каждого файла. Однако для улучшения общей производительности, особенно на тех дисках, на которых редко выполняется поиск по файлам, индексирование содержимого лучше отключить (к утрате возможности выполнения поиска по свойствам файлов это не приводит). Необходимые для этого шаги перечислены ниже.

  1. Выберите в меню Пуск пункт Компьютер.
  2. Щелкните правой кнопкой мыши на нужном диске и затем выберите в контекстном меню пункт Свойства. Windows 7 отобразит ведомость свойств данного диска.
  3. На вкладке Общие снимите отметку с опции Разрешить индексировать содержимое файлов на этом диске в дополнение к свойствам файлов.
  4. Щелкните на кнопке ОК.

Включение функции кэширования записей

Также следует проверять, что на диске включена функция кэширования записей. Когда эта функция включена, Windows 7 не производит сбрасывание измененных данных на диск до тех пор, пока система не освободится, что, естественно, повышает степень производительности. Единственный недостаток состоит в том, что при возникновении сбоев электропитания или серьезных сбоев в работе системы данные останутся незаписанными на диск, т.е. все внесенные изменения утрачиваются. Однако вероятность возникновения подобных ситуаций минимальна, поэтому функцию кэширования записей рекомендуется оставлять включенной, каковой она и является в Windows 7 по умолчанию. Для проверки, действительно ли это так, служат следующие шаги.

  1. Щелкните на кнопке Пуск, введите в поле поиска слово диспетчер и затем щелкните в списке результатов поиска на варианте Диспетчер устройств.
  2. Разверните узел Дисковые устройства.
  3. Дважды щелкните на нужном жестком диске, чтобы отобразить ведомость его свойств.
  4. На вкладке Политика удостоверьтесь в том, что опция Разрешить кэширование записей для этого устройства отмечена.
  5. Для получения максимальной производительности установите отметку рядом с опцией Отключить очистку буфера кэша записей Windows для этого устройства. (Важно обратить внимание, что эта опция доступна только на определенных жестких дисках, которые ее поддерживают.)
  6. Щелкните на кнопке ОК.

Активизация опции Отключить очистку буфера кэша записей Windows для этого устройства"указывает Windows 7 использовать более жесткий алгоритм кэширования записей. Однако неожиданное отключение электроэнергии в таком случае практически наверняка приведет к потере данных. Поэтому активизировать эту опцию следует только при условии, что в системе имеется источник бесперебойного питания.



Понравилась статья? Поделиться с друзьями: