По рекомендациям Microsoft, следует отключать кэширование записи на диск,
так как это может привести к потере данных при отключении питания сервера, не смотря на то, что в конкурентной среде это существенно ускоряет работу. Одним из наиболее чувствительных к задержкам записи на диск является файл лога, именно для него подобное кэширование очень полезно, так как в лог попадает любое изменение данных, которое должно быть сброшено на диск до положительного ответа пользователю.
Решение
Теперь, Microsoft, даёт нам возможность включить кэширование записи на диск, но иным способом. В Windows Server 2016 появилась возможность создавать том с выделенной для него памятью NVDIMM-N, которая, в момент потери электропитания, сбрасывает информацию на NAND хранилище, где она может храниться до момента восстановления электропитания (https://www.micron.com/about/blogs/2017/august/nvdimm-n-where-are-we-now). Данная память и будет служить нам кэширующим элементом записи на диск.
Минимальные требования — один дисковый носитель и планка памяти NVDIMM-N, которые вы объедините в один том. Планка памяти добавляется в сервер локально.
Установка
На сайте Microsoft можно посмотреть как настроить данную технологию в отказоустойчивом варианте — ссылка
Сравнение
Предлагаю рассмотреть время отклика различных носителей:
- HDD время отклика 4 мс+
- SDD менее 4 мс, обычно около 1 мс
- PCI NVMe SSD время отклика измеряется в микросекундах
- NVDIMM измеряется в наносекундах
Обратите внимание, что ускорение дисковых операций часто приводит к большей пропускной способности и как следствие вырастает нагрузка на CPU.
Дополнительная литература
- Чуть больше подробностей на эту тему — ссылка (англ)