2

Я создал диск MDADM RAID0 с двумя жесткими дисками SSD и установил его в /media/ssd .

Можно ли предотвратить Linux от кэширования диска для чтения / записи в / из этого подключенного раздела? Это приведет к потере времени ввода-вывода и оперативной памяти, которые могут быть использованы моим приложением.

1 ответ1

2

Вы уверены, что хотите это сделать?

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

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

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

Некоторые операционные системы имеют (имели) флаги монтирования, которые требуют прямого ввода-вывода, а не буферизации. Я не видел упоминаний о такой опции в Linux. sync вынудит данные работать быстрее, но я не верю, что они удаляются из памяти гораздо быстрее, чем это было бы в противном случае.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .