Внимание: возможны перебои мобильного интернета. Рекомендуем оплачивать заказы наличными.
+7 499 67-33-888

SSD-кэш в NAS: как он работает и почему часто не помогает

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

Идея выглядит безупречно. Механические диски дают ёмкость, но медленно реагируют. Твердотельные быстры, но дороги. Поставим небольшой быстрый накопитель поверх большого медленного массива — и получим скорость одного при стоимости другого.

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

Что кэш делает

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

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

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

Почему на линейном копировании выигрыша нет

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

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

Второе: линейное чтение — это как раз то, что механические диски умеют хорошо. Массив из четырёх дисков выдаёт линейную скорость, которая и так превышает пропускную способность гигабитной сети в несколько раз. Ускорять здесь нечего — упирается провод.

СценарийПомогает ли кэш
Копирование большого файлаНет
Открытие одних и тех же документовДа
Каталог фотографий с эскизамиЗаметно
Просмотр фильмаНет
База данных приложенияСильно
Первичная заливка архиваНет

Кэш на чтение и кэш на запись

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

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

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

Где кэш выигрывает по-настоящему

Чтобы понять, зачем механизм вообще существует, полезно посмотреть на слабое место механического диска. Оно не в линейной скорости, а в перемещении головки.

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

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

Какой объём нужен

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

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

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

Износ кэширующих накопителей

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

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

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

Кэш ест память

Неочевидное следствие, которое портит планы владельцам младших моделей. Чтобы понимать, какой блок где лежит, системе нужна таблица соответствия — и держать её приходится в оперативной памяти.

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

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

Разогрев и почему сразу не работает

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

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

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

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

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

Альтернатива: отдельный быстрый том

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

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

Недостаток один: разделение приходится делать руками. Приложения, базы, образы виртуальных машин и текущие проекты — на быстрый том. Архив, медиатека и резервные копии — на медленный. Для большинства сценариев это разделение очевидно и делается один раз.

Порядок проверки перед покупкой накопителей

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

  1. Измерьте скорость линейного копирования большого файла и сравните с потолком вашей сети.
  2. Если упирается в сеть — кэш не поможет ни в чём, вопрос закрыт.
  3. Измерьте работу с папкой мелких файлов: именно здесь виден отклик дисков.
  4. Посмотрите загрузку процессора во время медленных операций: если он занят полностью, дело не в дисках.
  5. Оцените, повторяются ли обращения к одним и тем же данным в вашей работе.
  6. И только при положительном ответе на последний пункт покупайте накопители под кэш.

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

Как это выглядит в цифрах

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

ОперацияМеханический массивС попаданием в кэш
Линейное чтениеСотни МБ/сСтолько же
Случайное чтение мелких блоковЕдиницы МБ/сСотни МБ/с
Отклик на запросМиллисекундыМикросекунды
Одновременные обращенияПадает нелинейноДержится ровно

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

Когда кэш действительно нужен

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

И зеркальный список — когда не нужен. Домашнее хранилище с медиатекой и резервными копиями: данные читаются по одному разу, повторов почти нет. Хранилище на гигабитной сети: узкое место не в дисках. Аппарат с малым объёмом памяти: будет хуже. Видеоархив с камер: сплошная запись без повторных чтений.

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

Коротко о главном

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

Частые вопросы

Ускорит ли кэш копирование файлов?

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

Чем отличается кэш на чтение от кэша на запись?

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

Какой объём кэша нужен?

Он должен вмещать рабочий набор — объём данных, с которым вы реально работаете в течение недели. Меньше почти бесполезно, больше — переплата.

Сколько памяти требует кэш?

Таблица соответствия блоков живёт в оперативной памяти. На аппарате с четырьмя гигабайтами кэш скорее навредит; рабочий минимум — восемь.

Что лучше: кэш или отдельный SSD-том?

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

Нужен ли кэш дома?

Обычно нет. Медиатека и резервные копии читаются по одному разу, повторных обращений мало, а на гигабитной сети узкое место всё равно не в дисках.

Почему покупатели выбирают нас

Надёжный магазин ноутбуков для уверенной покупки

Помогаем подобрать технику и предлагаем прозрачные условия — от консультации до доставки и гарантии.

20+ лет на рынке 15 000+ клиентов

01

Экспертность в технике

Подбираем решения для дома, работы и бизнеса на основе реального опыта.

20+ лет на рынке

02

Быстрая доставка

Оперативно доставляем по Москве. По России — с упаковкой и страхованием.

1 день по Москве

03

Гарантия и поддержка

Гарантийные условия и консультации по оформлению и использованию техники.

100% оригинальная техника

04

Честные цены

Без скрытых платежей и доплат. Доставка и самовывоз в Москве.

15 000+ довольных клиентов

Мы на маркетплейсах

Выберите модификацию товара.
Изображение
Добавлен к сравнению