Как часто вызывается fsync в повседневном использовании?

Скажем, я провожу некоторое время как пользователь, взаимодействующий с файловой системой, используя такие команды, как cp , mv , mkdir и rm . Ни одна из этих команд не вызывает fsync при нормальной работе.

Может ли файловая система работать неограниченно без fsyncing? Это ли подвергает мои данные риску? Должен ли я пытаться определить, сколько времени прошло с момента последнего fsync?

One Solution collect form web for “Как часто вызывается fsync в повседневном использовании?”

Короткий ответ: да, да, нет.

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

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

В Linux настройки, которые вы можете настроить, находятся в /proc/sys/vm ; соответствующей документацией является sysctl/vm.txt – найдите dirty_ . Различные настройки позволяют указать, сколько данных можно ожидать, чтобы они были написаны или как долго, до того, как операционная система начнет записывать их на диск. Здесь могут быть два механизма: есть фоновый поток, который записывает ожидающие данные на диск ( dirty_background_... ), и когда процессы начинают производить слишком много данных, операционная система заставит их записи сбрасываться на диск (эффективно внедряя что-то вроде fsync ). Причина заключается в том, что операционная система пытается сохранить баланс между производительностью ввода-вывода и производительностью обработки: пока запущенные процессы не слишком быстро записывают данные, фоновый поток заботится об этом; но как только они начинают записывать слишком много данных, чтобы диски не отставали, они замедляются, что помогает системе догнать ожидающие данные данные и избегает слишком большого количества записываемых данных.

Если вы беспокоитесь о своих данных, не пытайтесь проверить, вызван ли fsync , просто запустите sync .

(Игнорировать /proc/sys/vm/dirtytime_expire_seconds , это совсем другое.)

  • Структура блока Ext2: размер зарезервированных блоков GDT
  • Какова концепция дисков в Unix Systems?
  • Почему Linux должен иметь как `/ dev / cdrom`, так и` / media / cdrom`?
  • Как отобразить все разделы в древовидном формате (первичный, расширенный и логический)?
  • Когда используется сетевой менеджер, OpenSuSe застревает во время загрузки в течение 10 минут
  • Различные UID / GID при использовании USB-диска формата ext4 с другим компьютером
  • Как проверить местоположение mnt?
  • Как я могу получить доступ на запись к моим USB-накопителям?
  • установка pendrivelinux на USB-накопителе - используется только 5,8 ГБ 14,7-Гбайт USB-накопителя
  • Изменение размера (увеличения) основного раздела ОС
  • jdb2 постоянно загружает жесткий диск
  • Нечетное поведение с сжатым файлом gzip
  • Linux и Unix - лучшая ОС в мире.