Тарифы Услуги Сим-карты

Ssd в качестве кэша. SSD - кэширование. Дискуссия и опрос

«Лучшей практикой» для многих корпоративных заказчиков является применение гибридных систем хранения SSD/HDD. Такое решение позволяет воспользоваться преимуществами обоих типов носителей - большой емкостью HDD и высоким быстродействием SSD в IOPS (количество операций ввода-вывода в секунду), - но при этом остается экономически привлекательным.

В гибридной системе хранения SSD/HDD основная емкость представлена недорогими жесткими дисками, а небольшой пул для «горячих», часто используемых данных - флеш-памятью. В рационально спроектированной гибридной СХД при небольшом количестве накопителей SSD достигается значительное ускорение операций с основным пулом хранения данных.

РЕАЛИЗАЦИЯ ГИБРИДНЫХ СХД

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

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

При многоуровневом хранении данные соответствующим образом сортируются и помещаются на уровень SSD или HDD (уровней может быть больше двух): «горячие» отправляются на флеш-память, а реже используемые - на жесткие диски.

ЧТО ЛУЧШЕ?

Многоуровневое хранение не предполагает избыточности данных, поэтому реализация RAID в этом случае становится более сложной - требуется покупка дополнительных SSD. Сама сортировка данных и распределение их по уровням негативно сказываются на производительности. Такие системы должны управлять данными, которые из «горячих» со временем превращаются в «холодные». Ввиду отсутствия избыточности, часто используемые данные нужно перемещать в основной пул, как только они становятся менее полезными. Эти фоновые процессы потребляют IOPS и сказываются на скорости операций ввода-вывода во время таких перемещений. С наибольшей эффективностью многоуровневое хранение функционирует в тех случаях, когда соответствующие алгоритмы адаптированы к требованиям и задачам заказчика. Для достижения идеальной производительности нужны постоянный мониторинг и подстройка алгоритмов.

В отличие от сложного многоуровневого хранения, кэширование на SSD в существующих СХД реализовать проще. Гибридные системы хранения с кэшированием на SSD не требуют дополнительного администрирования, а приложение воспринимает такую систему точно так же, как и любую другую сетевую СХД, только работает она намного быстрее. Реализация RAID и защита данных у нее аналогичные, и покупать для этого дополнительные SSD не потребуется.

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

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

ПРОБЛЕМА ЗАПИСИ

Будучи более производительными, накопители SSD имеют определенные ограничения на запись данных, и это нужно иметь в виду при выборе метода ускорения СХД. Хотя хранящиеся на флеш-накопителях данные можно считывать бесконечное число раз, их ячейки допускают ограниченное число циклов записи. Эта проблема осложняется необходимостью удалять весь блок даже при записи данных меньшего объема. Для ее решения в современных контроллерах флеш-памяти применяются методы распределенной записи, кэширования операций записи и фоновая «сборка мусора». Однако запись на SSD остается более сложной операцией, чем чтение. Слишком частое выполнение записи в одни и те же ячейки может привести к быстрой деградации флеш-памяти.

Если в клиентской системе операции записи на SSD можно распределить таким образом, что каждый отдельный блок носителя будет перезаписываться достаточно редко, то в гибридной СХД уровень SSD активно задействуется для хранения «горячих» данных всего дискового пула. При кэшировании и многоуровневом хранении операции с SSD станут очень интенсивными, и преимущества алгоритмов предотвращения износа носителя будут сведены на нет. Это означает, что в обоих случаях (кэширование и многоуровневое хранение) уровень SSD лучше всего задействовать для ускорения операций чтения, а не чтения и записи.

РЕАЛИЗАЦИЯ КЭШИРОВАНИЯ НА SSD

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

НАПОЛНЕНИЕ КЭШ-ПАМЯТИ

Кэш, как и основная емкость хранения, разбивается на группы секторов равного размера. Каждая группа называется кэш-блоком, а каждый блок состоит из подблоков. Размер кэш-блока можно настраивать под конкретное приложение, например СУБД или Web-сервер.

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

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

Что происходит с содержимым кэша после его «разогрева»? Если на SSD есть свободное место, кэш продолжает заполняться «горячими» данными. Когда емкость SSD исчерпывается, применяется алгоритм перезаписи наименее используемых данных (Least Recently Used, LRU), то есть на место последних в кэш-памяти записываются новые «горячие» данные.

Если объем «горячих» данных превышает емкость SSD, процент считываемых из кэш-памяти данных уменьшается, соответственно, снижается и производительность. Кроме того, чем меньше емкость SSD (и чем больше объем горячих данных), тем интенсивнее обмен «горячих» данных. В результате SSD будет изнашиваться быстрее.

Специалисты Qsan рекомендуют использовать накопители Intel SSD DC S3500. Так, у SSD емкостью 480 Гбайт наработка на отказ (MTBF) составляет 2 млн ч. Что касается производительности, то типичная задержка у этих накопителей равна 50 мс, максимальная задержка при чтении - 500 мс (99,9% времени), а производительность при произвольном чтении блоками по 4 Кбайт достигает 75 тыс. IOPS, при записи - 11 тыс. IOPS. Это хороший вариант для SSD-кэширования.

КЭШИРОВАНИЕ ПРИ ЧТЕНИИ-ЗАПИСИ

Операция чтения при отсутствии данных в кэш-памяти происходит следующим образом:

  1. Данные считываются с HDD.
  2. Выполняется операция наполнения SSD.

Операция чтения при наличии данных в кэш-памяти:

  1. Приложение подает запрос на чтение данных.
  2. Данные считываются с SSD.
  3. Запрошенные данные возвращаются приложению.
  4. При сбое SSD данные считываются с HDD.

Действия приложения при записи данных:

  1. Приложение подает запрос на запись данных.
  2. Данные записываются на HDD.
  3. Приложению возвращается статус операции.
  4. Выполняется операция наполнения кэш-памяти на SSD.

НАСТРОЙКА КЭШ-ПАМЯТИ SSD

Чтобы приложение использовало кэш-память на SSD максимально эффективно, ее можно настроить. Основные параметры - размер блока кэш-памяти, пороговые значения наполнения при чтении и при записи.

Размер блока. Большой размер блока кэш-памяти подходит для приложений, часто обращающихся к соседним (по физическому расположению) данным. Это называется высокой локальностью обращений. Увеличение размера блока также ускоряет наполнение кэш-памяти на SSD - ускоряется «разогрев» кэша, после которого приложения с высокой локальностью обращений будут демонстрировать весьма высокую производительность. Однако увеличение размера блока влечет за собой генерирование избыточного трафика ввода-вывода и увеличение времени отклика, особенно для отсутствующих в кэше данных.

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

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

Как можно видеть, увеличение или уменьшение каждого параметра имеет свои положительные и отрицательные последствия. Очень важно понимать «локальность» приложения. Кроме того, полезно протестировать систему на реальных нагрузках и посмотреть, при каких параметрах она показывает лучшие результаты.

ПРИМЕР КОНФИГУРАЦИИ КЭША НА БАЗЕ SSD

В тесте моделировалась типовая ситуация ввода-вывода (произвольное чтение 90% + запись 10%) для определения выигрыша, который дает использование SSD-кэша. При тестировании применялась система AegisSAN Q500 в следующей конфигурации:

  • HDD: Seagate Constellation ES, ST1000NM0011, 1 Тбайт, SATA 6 Гбит/с (x8);
  • SSD: Intel SSD DC 3500, SSDSC2BB480G4, 480 Гбайт, SATA 6 Гбит/с (x5);
  • RAID-группа: RAID 5;
  • тип ввода-вывода: Database Service (8 Кбайт);
  • режим ввода-вывода: блоки по 8 Кбайт.

Время «разогрева» вычисляется по следующей формуле:

T = (C × P) / (I × S × D),

где T - время «разогрева», I - средняя производительность в IOPS одного HDD при произвольном чтении, S - размер блока ввода-вывода, D - число HDD, C - совокупная емкость всех SSD, P - пороговое значение наполнения кэш-памяти при чтении или записи. На практике «разогрев» кэша может занять больше времени.

Для данной конфигурации оно составит:

Т = (2 Тбайт × 2) / (244 × 8 Кбайт × 8) = 275 036,33 сек = 76,40 ч.

Без кэширования на SSD средняя производительность составила 962 IOPS. При включении кэширования она выросла до 1942 IOPS, то есть улучшение после «разогрева» кэша оказалось двукратным - 102%. Согласно расчетной формуле время разогрева равно 76,4 ч, в тесте после 75 ч производительность в IOPS достигла максимальной величины и оставалась после этого стабильной.

ЗАКЛЮЧЕНИЕ

В концепции ускорения гибридных СХД реализуется идея увеличения производительности всей системы за счет быстрого доступа к «горячим» данным. Принимая во внимание затраты на оборудование и администрирование, можно утверждать, что в общем случае кэширование данных на SSD представляет собой наилучший способ получения преимуществ высокой производительности при использовании систем хранения с флеш-накопителями без потери надежности хранения данных.

Бартек Митник - директор по продажам компании Qsan Technology в регионе EMEA.

Введение

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

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

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

В данной статье мы решили детально рассмотреть наиболее популярные SSD-твики и определить с помощью теста, как они влияют на производительность системы. По-существу, нам предстоит ответить всего на два простых вопроса - можно ли, используя определённые системные твики, освободить место на системном диске и увеличить производительность компьютера?

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

Мы протестируем девять наиболее популярных SSD-твиков для операционной системы Windows 7:

  1. Отключение System Restore.
  2. Отключение индексации данных.
  3. Отключение файла подкачки.
  4. Отключение гибернации.

Режим AHCI и команда TRIM

Прежде, чем приступить к тонким системным твикам, необходимо удостовериться, что SATA-контроллер переведён в режим AHCI, а команда TRIM поддерживается Windows 7. Обе данные настройки, строго говоря, нельзя отнести к разряду оптимизаций для SSD – скорее, это требование к конфигурации компьютера, в котором используется твердотельный накопитель.

Режим AHCI (Advanced Host Controller Interface) - это специфический режим SATA-контроллера, который позволяет пользоваться горячей заменой дисков SATA и технологией NCQ (Native Command Queuing - встроенная очередь команд). Использование NCQ обеспечивает более высокое быстродействие дисковой подсистемы.

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

Не стоит забывать и о ещё одном важном аргументе в пользу AHCI: только в этом режиме работы контроллера вы можете воспользоваться поддержкой команды TRIM, которую обеспечивает операционная система Windows 7. Поддержка TRIM необходима для SSD-дисков, так как она помогает сохранять высокую производительность накопителя в течении длительного периода времени.

Согласно Википедии, TRIM - команда, позволяющая операционной системе уведомить твердотельный накопитель о том, какие блоки данных больше не используются и могут быть очищены накопителем самостоятельно. Применение TRIM позволяет устройству SSD уменьшить влияние "сборки мусора" (garbage collection), которая в противном случае в дальнейшем обернётся снижением скорости записи в затронутые секторы. Поддержка TRIM обеспечивает более стабильную скорость записи, а также снижает износ свободных ячеек памяти.

Как проверить, что контроллер SATA работает в режиме AHCI

Режим AHCI контроллера SATA можно выставить в настройках BIOS или UEFI вашей материнской платы. В большинстве современных материнских плат он устанавлен по умолчанию, но удостовериться в правильной настройке BIOS следует именно перед установкой Windows, а не после. Если Windows уже установлена, необходимо проверить, включён ли режим AHCI:

  • В меню "Пуск" выбираем "Панель управления".
  • На вкладке "Просмотр" выбираем режим отображения "Мелкие значки".
  • Выбираем "Диспетчер устройств".
  • В "Диспетчере устройств" находим ветку "IDE ATA/ATAPI контроллеры", разворачиваем её и ищем контроллеры AHCI.
  • Если AHCI-контроллер есть в списке, то система работает в режиме AHCI.
  • Если контроллеры AHCI в списке отсуствуют, то система запущена без поддержки AHCI.

  • Если вместо AHCI используется режим Legacy IDE, то рекомендуется переключится в режим ACHI. Однако при установленной ОС сделать это будет уже немного сложнее. Подробнее об этом описано в статье техподдержки на сайте Microsoft .

Как проверить, что включена команда TRIM

Если поддержка TRIM включена в Windows 7, то операционная система оправляет соответствующие команды SSD-накопителю. Убедиться, работает ли TRIM, также довольно просто:

  • В меню "Пуск" в поле поиска вводим cmd.
  • Кликаем правой кнопкой мыши по исполняемому файлу cmd.exe и выбираем "Запуск от имени администратора".
  • В командной строке вводим "fsutil behavior query DisableDeleteNotify" (без кавычек).
  • Если компьютер выдаёт DisableDeleteNotify = 0, поддержка TRIM включена.
  • Если выводится сообщение DisableDeleteNotify = 1, поддержка TRIM отключена.

Отключение System Restore

Перейдём к описанию более тонких системных оптимизаций. Первой из них на очереди стоит отключение System Restore - встроенной в Windows системы отката (восстановления) системы, использующей принцип "контрольных точек".

Отключение System Restore решает две задачи. Во-первых, вы снижаете число операций записи на SSD, что повышает его долговечность. Сегодня есть разные мнения относительно того, стоит ли волноваться об излишних операциях записи на SSD. Количество циклов перезаписи - основной параметр, который говорит нам о долговечности ячеек памяти, на основе которых создаются твердотельные накопители. Некоторые пользователи считают, что волноваться не стоит: вы вряд ли увидите тот день, когда ячейки памяти вашего SSD-накопителя прекратят хранить данные. Другие пользователи, напротив, делают всё, чтобы минимизировать количество циклов перезаписи. Однозначного ответа, кто из них прав, пока нет. Но если вы не полагаетесь на случай и относите себя к тем, кто не хочет рисковать, то отключение System Restore - это хороший вариант уменьшить нагрузку на ячейки памяти. Добавим, что "контрольные точки" System Restore недоступны для команды TRIM и регулярное использование данной функции Windows потенциально способно привести со временем к снижению производительности накопителя.

Вторая причина отказаться от восстановления системы - экономия свободного места на системном диске. Контрольные точки, созданные System Restore, хранятся на самом системном диске и "отъедают" недешёвое дисковое пространство на SSD. При этом далеко не всегда они обеспечивают полноценный откат системы. Как правило, безопаснее иметь полноценный образ системы, созданный с помощью специализированной утилиты (Norton Ghost, Acronis True Image). "Развернуть" такой образ на диск можно за считанные минуты и у вас будет уверенность, что получится вернуться к рабочей системе. Кроме того, не нужно хранить такой образ на самом системном диске - для этих целей можно использовать обычный винчестер или внешний диск.

Как отключить восстановление системы

  • Кликаем правой кнопкой мыши по значку "Компьютер" в меню "Пуск" и выбираем "Свойства".
  • Выбираем вкладку "Защита системы".
  • Кликаем по кнопке "Настроить".
  • Устанавливаем флажок напротив пункта "Отключить защиту системы".

Отключение индексации данных

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

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

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

Как отключить идексацию

  • Кликните левой кнопкой мыши по пункту "Компьютер" в меню "Пуск".
  • Кликните правой кнопкой по иконке вашего SSD-накопителя и выберите "Свойства".
  • Снимите флажок "Разрешить индексирование содержимое файлов на этом диске в дополнение к свойствам файла".
  • Должно появиться окно предупреждения - отменять индексацию только для выбранного диска либо для всех вложенных папок и каталогов. Выбираем второй вариант, нажимаем ОК.

Отключение файла подкачки

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

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

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

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

Как отключить файл подкачки

  • Кликните правой кнопкой по значку "Компьютер".
  • Выберите "Свойства".
  • Выберите "Дополнительные параметры системы".
  • Перейдите на вкладку "Дополнительно" и кликните по кнопке "Параметры" в разделе "Быстродействие".
  • Появится окошко "Параметры быстродействия". В нём нужно выбрать вкладку "Дополнительно" и в разделе "Виртуальная память" кликнуть по кнопке "Изменить".
  • Появится диалоговое окно "Виртуальная память". В нём нужно снять галочку с параметра "Автоматически выбирать объём файла подкачки".
  • Выбираем "Без файла подкачки", нажимаем кнопку "Задать".
  • Нажимаем OK, чтобы сохранить изменения и перезагружаем компьютер.

Отключение гибернации

Согласно справке Microsoft: "Режим гибернации - это режим пониженного потребления электроэнергии, разработанный в первую очередь для ноутбуков. При переходе в спящий режим все открытые документы и параметры сохраняются в памяти и компьютер переходит в режим пониженного потребления электроэнергии, а при переходе в режим гибернации все открытые документы и программы сохраняются на жёстком диске и затем компьютер выключается".

Эти данные сохраняются в скрытом системном файле Hiberfil.sys, который находится в корневой папке того диска, где установлена операционная система Windows. Служба Windows Kernel Power Manager создаёт этот файл в ходе установки Windows. Размер файла гибернации точно соответствует размеру оперативной памяти компьютера.

Отключив режим гибернации, мы можем освободить объём на SSD, соответствующий объёму установленной оперативной памяти. Компьютер, оснащённый SSD-диском, не нуждается в гибернации. Его достаточно просто выключить - последующий запуск Windows осуществляется настолько быстро, что можно просто забыть про подобные режимы. Особенно это актуально для владельцев ноутбуков, так как полное выключение ПК более предпочтительно с точки зрения экономии энергии.

Таким образом, режим гибернации создавался для компьютеров, оснащённых обычным жёстким диском, позволяя им "просыпаться" быстрее, чем при полном цикле выключения-включения Windows. Скорость загрузки ОС на компьютерах, оснащённых SSD-диском, намного выше. Гибернация в этом случае лишена практического смысла, но есть смысл освободить место, которое занимает Hiberfil.sys.

Как отключить режим гибернации

  • В строке поиска меню "Пуск" введите cmd.
  • Кликните правой кнопкой по исполняемому файлу cmd.exe и выберите "Запуск от имени администратора".
  • В командной строке введите "powercfg -h off" (без кавычек).
  • После завершения операции командная строка вернётся к состоянию ожидания новой команды.

Отключение Prefetch и SuperFetch

SuperFetch (Супер-выборка) - служба, осуществляющая кэширование наиболее часто используемых файлов. Учитывая минимальное время доступа SSD-накопителя, её можно отключить. При установке Windows 7 на твердотельный накопитель SuperFetch должна быть отключена автоматически.

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

Как отключить Prefetch и SuperFetch

  • Наберите Regedit в строке поиска меню "Пуск".

  • В реестре Windows необходимо найти ветку "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters".
  • Дважды кликните по ключу EnablePrefetcher.
  • В строке "Значение" поменяйте значение на 0 и нажмите ОК.
  • То же самое повторите с ключом EnableSuperfetch.
  • Перезагрузите компьютер.

Отключение очистки буфера кэша записей Windows

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

Таким образом, перед нами - один из тех твиков, пригодных не для всех SSD. А именно, данная настройка не рекомендована для SSD-дисков Intel: по утверждаю производителя, она негативно влияет на производительность накопителя. Так или иначе, в нашем тесте мы зафиксировали скоростные характеристики дисковой подсистемы до и после применения данного твика, чтобы сделать вывод, сочетается ли всё-таки этот твик с дисками Intel или нет.

Как отключить очистку буфера кэша записей

  • Кликните правой кнопкой по значку "Компьютер" в меню "Пуск", затем нажмите "Свойства".
  • Выберите "Диспетчер устройств".
  • Разверните ветку "Дисковые устройства".
  • Кликните правой кнопкой мыши по SSD-накопителю и выберите "Свойства".
  • На вкладке "Политика" установите флажок напротив "Отключить очистку буфера кэша записей Windows для этого устройства".

Отключение SuperFetch и Windows Search через "Службы"

О назначении SuperFetch мы уже писали ранее, а здесь лишь предложим ещё один вариант отключения данной функции через "Службы" Windows.

Что касается Windows Search, то смысл данной функции ясен из названия. Windows Search индексирует файлы и папки на вашем ПК. Этот индекс расположен в скрытой папке C:\ProgramData\Microsoft\Search и занимает около 10% самих файлов, индексированных системой. Когда вы ищите что-либо на компьютере, используя встроенный поиск Windows, часть индекс-файла загружается в оперативную память, что существенно ускоряет случайный поиск. Но если система установлена на быстрым SSD-накопителе, то увеличение производительности от использования данной функции вряд ли будет заметно и есть смысл освободить место на жёстком диске, отключив службу Windows Search.

Как отключить SuperFetch и Windows Search

  • Нажав комбинацию клавиш Windows + R, вызовите диалоговое окно "Выполнить".
  • Наберите "services.msc" (без кавычек), нажмите Enter.
  • В появившемся окошке "Службы" найдите Superfetch и кликните по названию дважды мышкой.

  • В меню "Тип запуска" выберите "Отключена", затем нажмите OK.
  • В списке служб найдите Windows Search, кликните дважды мышкой.
  • Кликните по кнопке "Остановить", в списке "Тип запуска" выберите "Отключена", затем нажмите ОК.

Отключение ClearPageFileAtShutdown и LargeSystemCache

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

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

Если вы установили Windows 7 на SSD, есть большая вероятность, что обе данные функции были автоматически отключены при установке системы, но на всякий случай можно проверить это и просмотреть соответствующие ветки реестра:

  • Нажав комбинацию клавиш Windows + R, вызовите диалоговое окно "Выполнить" (Run).
  • Наберите "regedit" (без кавычек) и нажмите Enter.

  • Откройте ветку реестра "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management"
  • Дважды кликните по ключам ClearPageFileAtShutdown и LargeSystemCache, установив значение 0 для каждого из них.
  • Перезагрузите компьютер.

Настройка плана электропитания

Данная настройка позволит SSD в режиме ожидания обрабатывать "сборку мусора", даже если работа за компьютером не производится:

  • Заходим в "Панель управления".
  • Выбираем "Электропитание", затем разворачиваем список "Показать дополнительные планы электропитания".
  • Выбираем профиль "Высокая производительность".
  • Кликаем мышью по "Настройке плана электропитания", кликаем по "Изменить дополнительные параметры электропитания".
  • В появившемся диалоговом окне разворачиваем список "Жёсткий диск".
  • В окошке "Отключать жёсткий диск через" вводим 0, что означает "Никогда".
  • Нажимаем ОК.


Тестовая конфигурация

Тестовое оборудование
Процессор Intel Core i7-920 (Bloomfield), 45 нм, 3,2 ГГц, 8 Мбайт кэша L3
Материнская плата (LGA 1366) EVGA 132-BL-E758-TR, чипсет Intel X58 Express/ICH10R, версия BIOS: 6.00 PG
Оперативная память 6 Гбайт (3x2 Гбайт) DDR3-1600 OCZ Platinum (OCZ3P1600LV6GK)
Жёсткий диск Samsung Spinpoint F3 1 Тбайт (103SJ), прошивка 1AJ10001
SSD-накопители Intel X25-M G2 80 GB (SSDSA2M080G2GC), прошивка 2CV102M3

OCZ Vertex 2 240 GB (P75HAVO6H3N8E278), прошивка 1.29

Видеокарта EVGA SuperClocked 01G-P3-1563-AR GeForce GTX 560 Ti (Fermi) 1 Гбайт 256-bit GDDR5 (SLI)
Блок питания Corsair CMPSU-850TX

Программное обеспечение и драйверы
Операционная система Windows 7 Ultimate 64-Bit
Драйвер SATA Intel Rapid Storage Technology Driver 10.1.0.1008

Наша цель, в данном случае, состоит не в том, чтобы сравнить накопители Intel и OCZ между собой. Основная задача - оценить пользу или вред описанных ранее системных твиков для накопителей на разных контроллерах. По нашей задумке, конфигурация тестового стенда приближена к стандартной конфигурации современного ПК для энтузиастов. SSD-диск используется как системный, на него установлена операционная система и набор наиболее часто используемых программ. Игры, пользовательские папки и прочее находятся на жёстком диске.

Для тестирования "чистой" Windows без оптимизаций перед установкой Windows 7 мы использовали Secure Erase для каждого из принимавших участие в тесте SSD-накопителей.

Между тестами выдерживался промежуток в два дня, чтобы избежать снижения производительности диска вследствие многочисленных операций записи и накопления "сборки мусора", способной существенно снизить скоростные характеристики накопителя OCZ на базе контроллера SandForce SF-1200.

Кроме того, мы разметили накопитель OCZ Vertex 2 таким образом, чтобы система видела 74,4 Гбайт. Это необходимо, чтобы обеспечить равную ёмкость с накопителем второго поколения Intel X25-M и увеличить область "перекрытия" данных на OCZ Vertex 2.

CrystalDiskMark 3.0

Для начала, посмотрим на производительность в CrystalDiskMark 3.0 x64, обратив внимание на скорость чтения и записи. Ещё раз повторим, о каких настройках идёт речь:

  1. Отключение System Restore.
  2. Отключение индексации данных.
  3. Отключение файла подкачки.
  4. Отключение гибернации.
  5. Отключение prefetching (упреждающее чтение).
  6. Отключение очистки кэша записей Windows.
  7. Отключение SuperFetch (Супервыборка) и Windows Search.
  8. Отключение ClearPageFileAtShutdown и LargeSystemCache.
  9. Настройка плана электропитания.

Чтобы избежать большого количества подробных графиков, мы объединили системные твики: вначале применялись только первые четыре, а потом - все вместе. Естественно, на графиках присутствуют и результаты "чистой" Windows 7 (без применения твиков), установленной на диск, который был предварительно очищен с помощью Secure Erase.


Посмотрев на графики, мы видим, что в тесте на чтение оба SSD-накопителя демонстрируют незначительную разницу в производительности до и после применения твиков.


В тесте на производительность записи картина несколько интереснее. На этот раз, разница в производительности после применения твиков действительно есть. Но результаты сами по себе весьма неоднозначны. С одной стороны, скорость OCZ Vertex 2 в тесте на запись случайных блоков по 4 килобайта выросла на 20 Мбайт/с. Но в случае с Intel X25-M наблюдается резкое снижение производительности в случае применения всех оптимизаций. Результаты применения только первых четырёх твиков мало отличаются от "чистого" диска, так что проблема, по всей видимости, находится в твиках из второй половины списка - возможно, это связано с отключением очистки кэша записей Windows.

Увеличение ёмкости накопителя

Нас совсем не удивило, что первые четыре оптимизации не оказывают принципиального воздействия на производительность SSD в CrystalDiskMark. Эти настройки, скорее, ориентированы на очистку дискового пространства. Но можно ли рассчитывать, что они действительно помогут увеличить объём доступного пространства на диске?

При применении твиков из первой группы, объём доступного дискового пространства увеличивается на 10 Гбайт и примерно одинаков для обоих накопителей. Для SSD-накопителя небольшого объёма, который используется в качестве системного, этот результат весьма ощутимый - из расчёта нынешней стоимости гигабайта дискового пространства SSD, вы съэкономите около $25. Освободившегося на диске места вполне хватит для установки одной-двух игр.

Iometer

При работе с базами данных "чистые" SSD превосходят "оптимизированные". Intel X25-M пострадал от оптимизаций больше, чем накопитель OCZ: его производительность падает в два раза практически при любом значении глубины очереди. Результаты, показанные Vertex 2, совпадают на глубине от 1 до 2 и от 16 до 64, но на отрезке от 4 до 8 системные твики немного снижают производительность.

Схожую картину мы наблюдается в серверном сценарии Iometer. Производительность Intel X25-M снижается более чем в два раза (за исключением глубины очереди 4, где результаты странным образом совпадают), в то время как "оптимизированный" накопитель OCZ демонстрирует примерно такую же производительность, как и "чистый".

В сценарии "веб-сервер" различия между дисками до и после "оптимизации" незначительны. Intel X25-M впервые показывает небольшой прирост производительности, OCZ Vertex 2 – наоборот, после применения твиков работает немного медленнее.

В сценарии нагрузки рабочей станции результаты практически повторяют графики сценария файл-сервера. Производительность Intel X25-M падает почти вдвое на всех значениях глубины очереди, кроме 4. Графики OCZ Vertex 2 до и после применения твиков совпадают, за исключением глубины очереди от 4 до 16, где "оптимизированный" накопитель демонстрирует чуть лучший результат.

Iometer Streaming


Графики потокового чтения напоминают графики сценария "веб-сервер". Intel X25-M показывает небольшое увеличение производительности на любой глубине очереди, а OCZ Vertex 2, после применения твиков, несколько уступает "чистому" диску на глубине от 8 до 16.


В тестах на потоковую запись графики средней скорости и количества операций ввода/вывода показывают одинаковую картину. Производительность OCZ Vertex 2 после применения твиков не изменяется. "Оптимизированный" Intel X25-M почти в два раза медленнее на всех значениях глубины очереди, кроме 2 и 32.

Чтение и запись случайных блоков по 4 кбайт

В тесте на случайное чтение Intel X25-M вновь демонстрирует небольшой прирост производительности, в то время как OCZ Vertex 2 после твиков работает несколько медленнее.

В тесте на потоковую запись блоками по 4 кбайт накопитель OCZ до и после применения твиков показывает идентичный результат на всех значениях глубины очереди. "Оптимизированный" Intel X25-M G2 на глубине от 1 до 4 работает медленнее "чистого" диска.

PCMark Vantage Storage


Общая оценка производительности дисковой подсистемы в PCMark Vantage, после применения всех твиков, чуть выше для накопителя OCZ, но заметно (почти в два раза) ниже для Intel X25-M. В сценарии загрузки приложений негативное воздействие "оптимизаций" на производительность касается уже обоих накопителей. В случае OCZ Vertex 2 скорость загрузки приложений снижается на 18 Мбит/с, а Intel X25-M работает в два раза медленнее.

В игровой производительности OCZ вновь теряет 10 Мбайт/с. Intel X25-M, напротив, показывает увеличение производительности примерно на 10 Мбайт/с после применения всех твиков.

В редактировании видео с помощью Windows Movie Maker мы вновь видим, что "оптимизации" негативно отражаются на производительности обоих накопителей. Для OCZ разница незначительна, но диск Intel работает значительно медленнее: скорость падает с 130,54 Мбайт/с до 48,47 Мбайт/с.

Тест на производительность Windows Defender в очередной раз демонстрирует снижение скоростных характеристик. Оба диска работают медленнее после применения твиков, хотя ситуация с Intel X25-M не столь печальна, как в предыдущем испытании.

Не меняется ситуация и в Windows Media Center. Производительность Intel X25-M снижается почти в два раза, OCZ Vertex 2 показывает снижение скорости на 30 Мбайт/с.

В сценарии добавления музыки в библиотеку Windows Media Player мы видим снижение производительности Intel X25-M примерно в три раза(!). Для накопителя OCZ применение твиков привело к снижению скорости на 6,72 Мбайт/с, что намного менее критично.

В сценарии импортирования изображений в библиотеку Windows Photo Gallery мы видим более интересную картину. Диск OCZ по-прежнему работает немного медленнее после "оптимизаций", но в данном случае разница незначительна. Зато Intel X25-M, наоборот, демонстрирует ощутимый прирост производительности.

Сценарий загрузки Windows Vista повторяет результаты, которые мы наблюдали в нескольких более ранних тестах. Снижение производительности для OCZ Vertex 2 незначительно, но накопитель Intel после всех "оптимизаций" работает ощутимо медленнее - скорость снижается с 198,33 Мбайт/с до 107,52 Мбайт/с.

Что не так с отключеним очистки буфера кэша записей?

Основываясь на результатах наших тестов становится понятно, почему Intel рекомендует не отключать очистку буфера кэша записей Windows для своих SSD. Чтобы визуализировать негативное влияние данного твика, мы повторно запустили тест на запись бенчмарка CrystalDiskMark 3.0 x64 с тремя конфигурациями настроек:

  1. "Чистая" установка Windows на диск после Secure Erase.
  2. Windows cо всеми твиками включая отключённую очистку буфера кэша записей.
  3. Windows со всеми твиками, кроме очистки буфера кэша.

Таким образом, мы увидим, влияют ли на снижение производительности все остальные "оптимизации", рекомендуемые для владельцев SSD.

Когда применены все твики, включая очистку буфера кэша, производительность Intel X25-M G2 существенно снижается. Наиболее печальную картину мы видим в тестах на запись блоков данных по четыре килобайта: здесь скорость записи падает до 4 Мбайт/с. Если же применить все оптимизации, за исключением очистки буфера, то производительность накопителя Intel возвращается примерно к тому же уровню, что и в случае "чистой" Windows. Несомненно, необходимо следовать рекомендации Intel и отказаться от отключения буфера кэша записей, если в вашем распоряжении есть твердотельный накопитель данного производителя.

Выводы

Понятно, что схема оптимизации SSD с помощью системных твиков не настолько проста и логична, чтобы её можно было представить в виде краткой "инструкции для чайников". Некоторые твики приводят к снижению производительности. Некоторые, напротив, её повышают. Некоторые увеличивают доступное пространство на диске. Часть из них автоматически производятся при установке Windows 7 на SSD-накопитель.

Наиболее интересный момент тестирования производительности накопителя до и после применения "оптимизаций" заключается в том, что мы можем получить количественную оценку воздействия того или иного твика на производительность. Например, теперь мы точно знаем, что отключение очистки буфера кэша записей Windows на накопителях Intel является однозначно плохой идеей. OCZ Vertex 2, напротив, вполне нормально отреагировал на любой из девяти твиков. Вопрос, который мы приберегли для заключительной части нашей статьи, заключается в том, какой выигрыш даёт оптимизация SSD при помощи системных твиков для компьютерных энтузиастов, всегда стремящихся извлечь максимальную выгоду из потраченных на подобный накопитель денег.

Возможно, самый главный мотив, чтобы всё-таки оптимизировать работу SSD, заключается в увеличении доступного места на диске. Возможность освободить сколько-нибудь места на диске можно только приветствовать. На диске объёмом 40 или 60 Гбайт, уже заполненном под завязку операционной системой и приложениями, даже несколько "дополнительных" гигабайт станут более чем ощутимым бонусом. В нашем тесте мы смогли освободить 10 Гбайт на SSD-накопителе объёмом 80 Гбайт, используя несколько системных твиков. И хотя эти настройки являются самыми спорными с точки зрениях их воздействия на производительность, они, без сомнений, найдут применение в руках опытного пользователя, который понимает, что делает.

Мы предполагаем, что наибольшее отторжение наш материал вызовет у тех пользователей, которые просто не могут зайти дальше отключения файла подкачки. Есть серьёзные аргумент как за, так и против данной "оптимизации". Мы пока воздержимся от того, чтобы рекомендовать отключение файла подкачки или, наоборот, советовать воздержаться от этого. Отметим лишь то, что отключение файла подкачки имеет смысл лишь на тех машинах, где имеется достаточное количество оперативной памяти. Если вы хотите защитить себя от сбоев системы, работая без файла подкачки, то при пиковой загрузке должно оставаться от 25 до 50 процентов от общего объёма оперативной памяти. Иными словами, если в системе установлено 6 Гбайт оперативной памяти, то в ситуации пиковой загрузки должно оставаться свободным 3,5-4 гигабайта. Если это не так, перед отключением файла подкачки имеет смысл подумать об увеличении объёма оперативной памяти, в противном случае существует риск нестабильной работы компьютера и потери данных.

Помимо увеличения свободного дискового пространства, ещё одним мотивом оптимизации SSD является минимизация операций записи на диск. Применяемая в твердотельных накопителях MLC-память имеет ограниченное число гарантированных циклов перезаписи и есть вполне реальная вероятность, что после определённого числа операций перезаписи ячейка просто откажется принимать новые данные. Хотя мы не располагаем каким-либо инструментом, с помощью которого можно было бы определить состояние ячеек на диске прямо сейчас, шумиха вокруг потенциальной ненадёжности такого рода накопителей намного больше, чем реальная ненадёжность. Чтобы убедиться в этом, достаточно, для примера, изучить спецификации Intel. Несмотря на переход в серии SSD 320 к потенциально менее стойкой MLC-памяти, изготовленной по техпроцессу 25 нм, компания Intel увеличила срок гарантии с трёх до пяти лет. С учётом этого факта, оптимизация диска с целью уменьшения числа циклов перезаписи не представляется нам необходимой.

В конечном итоге, именно вам решать, какие из перечисленных твиков стоят того, чтобы применить их на вашей системе. Компания Microsoft несколько облегчила данную задачу для пользователей Windows 7, так как некоторые из оптимизаций автоматически применяются при установке системы на SSD, так что повторно настраивать их вручную уже нет необходимости. Если вы готовы взять на себя определённый риск, то остаётся возможность освободить немного места на SSD, однако на прирост производительности в результате таких оптимизаций рассчитывать не стоит.

Рассмотрим несколько различных вариантов построения дисковой подсистемы сервера с целью сравнения их по цене и быстродействию. В качестве величины полезной емкости дискового хранилища выберем значение 10TB. Во всех вариантах предполагается использование аппаратного RAID-контроллера с кэш-памятью 2GB.

Бюджетный вариант - два жестких диска 3,5" объемом 10TB с интерфейсом SATA и скоростью вращения шпинделя 7200 об./мин., объединенных в массив RAID1. Быстродействие такого массива не превысит 500 операций в секунду (IOPS) при чтении и 250 IOPS при записи. Дополнительный плюс этого решения – возможность кратного увеличения емкости хранилища за счет добавления новых дисков в свободные отсеки дисковой корзины сервера.

Производительный вариант - 12 HDD 2,5" 10’000RPM емкостью 1,8TB в RAID10 (RAID5 или RAID50 в два раза медленнее на операциях записи). Здесь мы получим на чтении около 5’000 IOPS, а на записи 2’500 IOPS - в 10 раз больше по сравнению с первым вариантом. Однако и обойдутся эти диски примерно в шесть раз дороже.

Максимальное быстродействие обеспечит массив RAID10 из SSD-накопителей, например, 12 штук Intel DC S4600 1,9TB. Производительность такого массива составит 800’000 IOPS на операциях чтения и 400’000 IOPS на операциях записи, то есть быстрее второго варианта в 160 раз, но дороже по сравнению с ним в 4 раза, а с первым вариантом – в 24 раза. Выбор SSD-накопителей большего размера даст примерно такие же цифры по стоимости и немного ниже – по производительности.

Вариант
массива
Чтение
(IOPS)
Запись
(IOPS)
Во сколько
раз быстрее
Во сколько
раз дороже
HDD 10TB x 2 500 250
HDD 1,8TB x 12 5’000 2’500 X 10 X 6
SSD 1,9TB x 12 800’000 400’000 X 1600 X 24

В общем, чем дороже, тем быстрее. И даже скорость обгоняет цену.

Прирост производительности на 3 порядка, который обеспечивают твердотельные накопители, является чрезвычайно привлекательным, однако на хранилищах такого объема обходится слишком дорого.

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

Идея SSD-кэширования основана на концепции «горячих» данных.

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

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

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

Технология SSD-кэширования применяется как для операций чтения, так для операций записи.

Алгоритм SSD-кэширования реализуется контроллером, он довольно простой и не требует от администратора никаких усилий по настройке и сопровождению. Суть алгоритма в следующем.

Когда сервер посылает контроллеру запрос на чтение блока данных

Если да, контроллер читает блок из SSD-кэш.

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

Когда сервер посылает контроллеру запрос на запись блока данных , контроллер проверяет, находится ли данный блок в SSD-кэш.

Если да, контроллер записывает данный блок в SSD-кэш.

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

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

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

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

Если SSD-кэширование планируется использовать для чтения и записи, то «горячие» данные будут храниться только в кэш-памяти на SSD. В этом случае необходимо обеспечить резервирование таких данных, для чего использовать в качестве кэш-памяти два или более SSD-накопителей, объединенных в RAID-массив с избыточностью, например, RAID1 или RAID10.

Давайте посмотрим, как технология SSD-кэширования работает на практике, а заодно сравним эффективность ее реализации на контроллерах двух разных производителей – Adaptec и LSI.

Тестирование

Основной дисковый массив: RAID10 из шести HDD SATA 3,5" 1TB. Полезный объем массива 2,7TB.

SSD-кэш: RAID1 из двух SSD Intel DC S4600 240GB. Полезный объем массива 223GB.

В качестве «горячих» данных мы использовали первые 20 миллионов секторов, то есть 9,5GB, основного массива RAID10. Выбранный небольшой объем «горячих» данных принципиально ничего не меняет, но позволяет значительно сократить время тестирования.

Тестируемые контроллеры: Adaptec SmartRAID 3152-8i и BROADCOM MegaRAID 9361-8i (LSI).

Нагрузка на дисковую подсистему создавалась при помощи утилиты iometer. Параметры нагрузки: размер блока 4K, случайный доступ, глубина очереди 256. Мы выбрали большую глубину очереди, чтобы сравнивать максимальные показатели производительности, не обращая внимания на время задержки.

Производительность дисковой подсистемы фиксировались при помощи системного монитора Windows.

Adaptec (Microsemi) SmartRAID 3152-8i с технологией maxCache 4.0

Этот контроллер по умолчанию поддерживает технологию SSD-кэширования maxCache 4.0 и имеет 2GB собственной кэш-памяти c защитой от потери питания в комплекте.

При создании основного массива RAID10 мы использовали установки контроллера по умолчанию.

Массив RAID1 кэш-памяти на SSD был установлен в режим Write-Back, чтобы включить SSD-кэширование на чтение и запись. При установке режима Write-Through все данные будут записываться на жесткий диск, поэтому мы получим ускорение только на операциях чтения.

Картина тестирования:

График 1. Тестирование Adaptec maxCache 4.0

Красная линия - производительность дисковой подсистемы на операциях записи.

В первый момент наблюдается резкий всплеск производительности до значения 100’000 IOPS – данные записываются в кэш контроллера, который работает со скоростью оперативной памяти.

После заполнения кэш производительность падает до обычной скорости массива жестких дисков (примерно 2’000 IOPS). В это время блоки данных записываются на жесткие диски, поскольку этих блоков в кэш-памяти на SSD еще нет и контроллер не считает их «горячими». Копия данных записывается в SSD-кэш.

Постепенно все больше блоков записывается повторно, такие блоки уже есть в SSD-кэш, поэтому контроллер считает их «горячими» и записывает только на SSD. Производительность операций записи при этом достигает 40’000 IOPS и стабилизируется на этой отметке. Поскольку в SSD-кэш данные защищены (RAID1), нет необходимости перезаписывать их в основной массив.

Отметим, кстати, что заявленная производителем скорость записи для используемых нами здесь SSD-накопителей Intel DC S4600 240GB составляет как раз 38’000 IOPS. Поскольку мы записываем один и тот же набор данных на каждый накопитель из зеркальной пары массива RAID1, можно сказать, что SSD-накопители работают на максимально возможной для себя скорости.

Синяя линия - производительность дисковой подсистемы на операциях чтения. Левый участок – чтение данных из массива жестких дисков со скоростью примерно 2’000 IOPS, в кэш-памяти на SSD пока нет «горячих» данных. Одновременно с чтением блоков жестких дисков выполняется их копирование в кэш-память на SSD. Постепенно скорость чтения немного растет, поскольку начинают «попадаться» блоки, ранее считанные в SSD-кэш.

После записи в SSD-кэш всех «горячих» данных их чтение выполняется оттуда со скоростью более 90’000 IOPS (второй синий участок).

Фиолетовая линия - комбинированная нагрузка (50% чтение, 50% запись). Все операции выполняются только c «горячими» данными на SSD. Производительность в районе 60’000 IOPS.

Резюме

Контроллер Adaptec SmartRAID 3152-8i отлично справится с организацией SSD-кэширования. Поскольку контроллер уже включает поддержку maxCache 4.0 и защиту кэш-памяти, необходимо приобрести только SSD-накопители. Контроллер удобен и прост в настройке, установки по умолчанию обеспечивают максимальный уровень защиты данных.

Видео с записью тестирования Adaptec maxCache 4.0:

LSI (BROADCOM) MegaRAID 9361-8i

Этот контроллер поддерживает технологию SSD-кэширования CacheCade 2.0. Для ее использования необходимо приобрести лицензию стоимостью около 20’000 рублей.

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

Установки контроллера для основного массива: кэш контроллера в режиме Write-Through; режимы чтения Direct IO, No Read Ahead.

Кэш-память на SSD-накопителях (массив RAID1) в режиме Write-Back для кэширования операций чтения и записи.

Картина тестирования (здесь диапазон вертикальной шкалы в два раза больше, чем у Adaptec):

График 2. Тестирование LSI CacheCade 2.0

Последовательность тестирования такая же, картина похожая, но производительность CacheCade 2.0 несколько выше, чем maxCache.

На операциях записи «горячих» данных мы получили производительность почти 60’000 IOPS против 40’000 у Adaptec, на операциях чтения – почти 120’000 IOPS против 90’000 IOPS, на комбинированной нагрузке – 70’000 IOPS против 60’000 IOPS.

Здесь нет «всплеска» производительности в начальный момент тестирования операций записи, поскольку кэш контроллера работает в режиме Write-Through и не используется при записи данных на диски.

Резюме

У контроллера LSI более сложная настройка параметров, требующая понимания принципов его работы. Для использования SSD-кэширования не требуется обязательное наличие защиты кэш-памяти контроллера. В отличие от Adaptec возможно использование SSD-кэш для обслуживания сразу нескольких RAID-массивов. Более высокая производительность по сравнению с контроллерами Adaptec. Требуется покупка дополнительной лицензии CacheCade.

Видео с записью тестирования LSI CacheCade 2.0:

Заключение

Дополним нашу табличку. При сравнении цен учтем, что для массива в 10TB желательна кэш-память большей емкости. Цифры производительности возьмем из нашего тестирования.

Вариант
массива
Чтение
(IOPS)
Запись
(IOPS)
Во сколько
раз быстрее
Во сколько
раз дороже
HDD 10TB x 2 500 250
HDD 1,8TB x 12 5’000 2’500 X 10 X 6
SSD 1,9TB x 12 800’000 400’000 X 1600 X 24
HDD 10TB x 2 + SSD 960GB x 2, maxCache 90’000 40’000 X 160 X 2,5
HDD 10TB x 2 + SSD 960GB x 2, CacheCade 120’000 60’000 X 240 X 3

При кэшировании записи всегда используйте в качестве SSD-кэш массивы с избыточностью (RAID1 или RAID10).

Для SSD-кэш используйте только серверные SSD-накопители. Они имеют дополнительную «невидимую» область размером около 20% от заявленного объема. Эта резервная область используется для внутренних операций дефрагментации и «сборки мусора», благодаря чему производительность таких накопителей на операциях записи не падает даже при 100% их заполнении. Кроме того, наличие резервной области экономит ресурс накопителя.

Ресурс SSD-накопителей для кэш-памяти должен соответствовать нагрузке на подсистему хранения сервера по объему записываемых данных. Ресурс накопителя обычно определяется параметром DWPD (Drive Writes Per Day) – сколько раз в день можно полностью перезаписать накопитель на протяжении 5 лет. Накопители с ресурсом 3 DWPD и более обычно будут подходящим выбором. Измерить реальную нагрузку на дисковую подсистему можно при помощи системного монитора.

В случае, если возникнет необходимость перенести все данные из кэш-памяти на SSD-накопителях на основной массив, нужно переключить режим работы SSD-кэш с Write-Back на Write-Through и подождать пока данные полностью не перепишутся на жесткие диски. По окончании этой процедуры, но не ранее, контроллер «позволит» удалить том SSD-кэширования.

Если у Вас появились вопросы или замечания по данному материалу, пожалуйста, направляйте их на .

  • Сравнение производительности различных типов серверных накопителей (HDD, SSD, SATA DOM, eUSB)
  • Сравнение производительности новейших серверных RAID-контроллеров Intel и Adaptec (24 SSD)
  • Сравнение производительности серверных RAID-контроллеров
  • Производительность дисковой подсистемы серверов Intel на базе Xeon E5-2600 и Xeon E5-2400
  • Таблицы сравнительных характеристик: RAID-контроллеры , Серверные HDD , Серверные SSD
  • Ссылки на разделы прайс-листа: RAID-контроллеры , Серверные HDD , Серверные SSD

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

Жесткие диски имеют среднее время доступа к произвольному блоку данных порядка нескольких миллисекунд. Это время необходимо для позиционирования головки диска над нужными данными. За одну секунду жесткий диск может прочитать (или записать) несколько сотен таких блоков. Этот показатель отражает производительность жесткого диска на случайных операциях ввода-вывода и измеряется величиной IOPS (Input Output per Second, операций ввода-вывода в секунду). То есть производительность случайного доступа для жесткого диска составляет несколько сотен IOPS.

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

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

Радикальным способом увеличения производительности дисковой подсистемы является использование твердотельных накопителей (SSD-накопителей), в которых информация записывается в энергонезависимую flash-память. У SSD-накопителей время доступа к произвольному блоку данных составляет несколько десятков микросекунд (то есть на два порядка меньше, чем у жестких дисков), благодаря чему производительность даже одного SSD-накопителя на случайных операциях достигает 60"000 IOPS.

На следующих графиках приведены сравнительные показатели производительности RAID-массивов из 8-ми жестких дисков и 8-ми SSD-накопителей. Приведены данные для четырех различных типов RAID-массивов: RAID 0, RAID 1, RAID 5 и RAID 6. Чтобы не перегружать текст техническими подробностями, информацию о методике тестирования мы поместили в конце статьи.


Из диаграмм видно, что применение SSD-накопителей повышает производительность дисковой подсистемы сервера на операциях произвольного доступа от 20 до 40 раз. Однако широкому использованию SSD-накопителей мешают следующие серьезные ограничения.

Во-первых, современные SSD-накопители имеют небольшую емкость. Максимальная емкость жестких дисков (3TB) превосходит максимальную емкость серверных SSD-накопителей (300GB) в 10 раз. Во-вторых, SSD-накопители примерно в 10 раз дороже жестких дисков, если сравнивать стоимость 1GB дискового пространства. Поэтому построение дисковой подсистемы из одних только SSD-накопителей в настоящее время применяется довольно редко.

Однако можно использовать SSD-накопители в качестве кэш-памяти RAID-контроллера. О том, как это работает и что дает, давайте поговорим подробнее.

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

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

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

Практически механизм кэширования на SSD-накопителях может быть реализован на любом шести-гигабитном RAID-модуле или RAID-контроллере Intel второго поколения на базе микроконтроллера LSI2208: RMS25CB040, RMS25CB080, RMT3CB080, RMS25PB040, RMS25PB080, RS25DB080, RS25AB080, RMT3PB080. Эти RAID-модули и контроллеры применяются в серверах Team на базе процессоров Intel E5-2600 и E5-2400 (платформа Intel Sandy Bridge).

Чтобы использовать режим SSD-кэширования, необходимо установить на RAID-контроллер аппаратный ключ AXXRPFKSSD2. Кроме поддержки SSD-кэширования, этот ключ также ускоряет работу контроллера с "чистыми" SSD-дисками, когда они используются не в качестве кэш-памяти, а как обычные накопители. В этом случае можно достичь производительности на операциях случайного чтения-записи в 465"000 IOPS (режим FastPath I/O).

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



Мы выполнили тестирование для двух вариантов организации SSD-кэш. В первом варианте 4 SSD-накопителя были объединены в RAID-массив нулевого уровня (R0), а во-втором случае из этих 4-х SSD-накопителей был образован зеркальный массив (R1). Второй вариант немного медленнее на операциях записи, зато он обеспечивает резервирование данных в SSD-кэш, поэтому предпочтительнее.

Интересно, что производительность чтения и записи практически не зависит от типа "основного" RAID-массива жестких дисков, а определяется только скоростью работы SSD-накопителей кэш-памяти и типом ее RAID-массива. Более того, "кэшированный" RAID 6 из жестких дисков на операциях записи оказывается быстрее, чем "чистый" RAID 6 из SSD-накопителей (29"300 или 24"900 IOPS против 15"320 IOPS). Объяснение простое - фактически мы измеряем производительность не RAID 6, а RAID 0 или RAID 1 кэш-памяти, а эти массивы быстрее на записи даже при меньшем числе дисков.

В качестве кэш-памяти можно использовать и один SSD-накопитель, однако мы рекомендуем этого не делать, поскольку не обеспечивается резервирование данных кэш-памяти. В случае выхода такого SSD-накопителя из строя, целостность данных будет нарушена. Для SSD-кэширования лучше использовать как минимум два SSD-накопителя, объединенный в RAID-массив первого уровня ("зеркало").

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

Конфигурация тестового стенда и методика тестирования

Серверная платформа — Team R2000GZ
Расширитель SAS-портов Intel RES2CV360 36 Port Expander Car
RAID-контроллер — Intel RS25DB080 с ключом AXXRPFKSSD2
HDD — 8 дисков SAS 2,5" Seagate Savvio 10K.5 300GB 6Gb/s 10000RPM 64MB Cache
SSD — 8 или 4 накопителя SSD SATA 2.5" Intel 520 Series 180GB 6Gb/s

Тестирование выполнялось при помощи программы Intel IO Meter.

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

Объем виртуального диска для тестирования — 50GB. Такой объем был выбран для того, чтобы тестируемый диск мог полностью поместится в SSD-кэш.

Прочие параметры:
Strip Size — 256KB.
Размер блока данных для последовательных операций — 1MB.
Размер блока данных для операций случайного доступа — 4 KB.
Глубина очереди — 256.

Отличия дисковых подсистем SSD и HDD+SSD для виртуальных выделенных серверов, сравнение производительности.

Диски HDD+SSD-кэш

Принцип работы . Мы используем быстрые SSD-диски для кэширования запросов к медленным, но значительно более ёмким и недорогим HDD-дискам. В этом режиме каждое обращение к жесткому диску виртуальной машины проверяется на наличие в кэше, и при его наличии в кэше отдаётся оттуда, а не читается с медленного диска. Если же в кэше данные не найдены, то они читаются с HDD-диска и записываются в кэш.

Преимущества технологии HDD+SSD-кэш. Основной плюс технологии HDD+SSD-кэш в объеме предоставляемого дискового пространства. Также серверы на этой технологии дешевле, что немаловажно для размещения начинающих проектов, тестовых серверов и вспомогательных сервисов.

  • Бекапы данных
  • Объемные архивы с данными
  • Любые сервисы и сайты, для которых не критична скорость чтения/записи с дисков

Диски SSD

Принцип работы . SSD (Solid-state drive) - это накопитель, в котором, в отличие от обычных жестких дисков, нет движущихся элементов. Для хранения в SSD используется флеш-память. Простыми словами, это большая флешка.

Преимущества технологии SSD. Основное преимущество SSD-накопителей - это скорость работы. В отличие от обычного жесткого диска, отсутствуют временные затраты на позиционирование считывающих головок - увеличивается скорость доступа к данным. Согласно тестам, скорость чтения/записи на SSD превышает показатели обычных HDD в несколько раз.

Кому будет полезен VDS или VPS на SSD ?

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

Диски NVMe

Принцип работы . NVM Express (NVMe, NVMHCI, Non-Volatile Memory Host Controller Interface Specification) - обновленная версия SSD-диска. Использует собственный, разработанный с нуля, протокол взаимодействия, и подключается через порт PCI Express.

Преимущества технологии NVMe. Чтение-запись с дисками NVMe в 2-3 раза быстрее, чем с обычными SSD. Шина PCI Express не ограничивает скорость диска - этим обеспечивается прирост производительности. Кроме этого, на NVMe быстрее обрабатываются параллельные операции, больше операций чтения-записи проводится в единицу времени.

Когда заказывать виртуальный сервер с диском NVMe ?

  • В тех же случаях, что и SSD. Когда вашему проекту уже не хватает производительности SSD, либо планируете рост проекта и высокие нагрузки.

Сравниваем производительность

Мы сравнили производительность виртуальных машин на «боевых» физических серверах с различными дисковыми подсистемами.

Мы учитывали количество IOPS (количество операций ввода/вывода, Input/Output Operations Per Second) - это один из ключевых параметров при измерении производительности систем хранения данных, жестких дисков и твердотельных дисков (SSD).

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

Сравнение производительности технологий