Есть ли способ узнать, использует ли Ubuntu политику сквозной записи или обратной записи?
Я знаю, что обратная запись намного лучше, но когда я пишу программу на C для проверки кэша, кажется, что Ubuntu использует запись до конца.
ОБНОВЛЕНИЕ: я имею в виду, что это кэш процессора, а не кеш файловой системы. Меня беспокоит политика записи в кэш L1, L2, L3 и RAM. Спасибо!.
В кэше с обратной записью, когда изменения внесены в кэшированные данные, они одновременно не сделаны к исходным данным также. Вместо этого измененные данные отмечены, и исходные данные обновляются, когда chached данные освобождены.
В записи - через кэш, в отличие от этого, изменения, сделанные к кэшированным данным, одновременно внесены в оригинале. Кэш с обратной записью может работать более быстро, чем запись - через кэш. Но в некоторых контекстах, различия между кэшируемыми и исходными данными могли привести к проблемам, и запись - через кэши должна использоваться
Теперь, не имеет значения, что ОС Вы продолжающий работать действительно вещь, которая влияние является файловой системой, которую Вы используете.
Ubuntu использованием по умолчанию ext4 как он файловая система и знать ext4 использует обе обратных записи режимов и запись - через.
Для включения записывают режим обратно
Выполненный:
tune2fs -o journal_data_writeback /dev/sd*
Редактирование fstab
vi -w /mnt/sdXY/etc/fstab
Найдите строку, как которая ссылки sd* Это посмотрит что-то:
# /dev/sda2
UUID=be2f0ac2-4683-4550-bcd1-704a1a840b3e / ext4 relatime,errors=remount-ro 0 1
Первой записью является UUID.
Вторая запись является путем.
Треть является fstype.
Четвертый опции.
Пятый для дампа
Шестой передача.
Измените опции (4-е) на:
noatime,data=writeback,barrier=0,nobh,errors=remount-ro
Перезагрузите свою систему для завершения изменений.
Также проверьте это для получения дополнительной информации.
Вы также можете ознакомиться с текущим режимом «data =», посмотрев / proc / mounts. Вот пример с моего ноутбука:
$ grep ext /proc/mounts
/dev/mapper/crypt-root / ext4 rw,noatime,errors=remount-ro,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/vg0-boot /boot ext4 rw,nosuid,nodev,noexec,noatime,user_xattr,barrier=1,data=ordered 0 0
/dev/mapper/crypt-homes /home ext4 rw,nosuid,noatime,user_xattr,acl,commit=60,barrier=1,data=ordered 0 0
Также обратите внимание, что «nobh» является устаревшей опцией монтирования.
Вы также можете увидеть, если вы хотите использовать флаги O_SYNC | O_DIRECT
в open (). В руководстве говорится:
«Флаг O_DIRECT сам по себе прилагает усилия для синхронной передачи данных, но не дает гарантии для флага O_SYNC, что данные и необходимые метаданные передаются. Чтобы гарантировать синхронный ввод-вывод, O_SYNC должен использоваться в дополнение к O_DIRECT. "
Смотрите man 2 open open для более подробной информации.