Преимущества / недостатки увеличения «фиксации» в fstab

Я сделал много неясных оптимизаций системы в прошлом, но я избавился от большинства из них после того, как powertop сказал мне, что я должен настроить свои USB-порты на autosuspend , что вынудило их вечный сон, а также после того, как я понял преимущества более высокого swappiness .

Но сегодня, глядя на /etc/fstab , я заметил, что я установил параметр commit=60 для / и / home . Я помню, что это была оптимизация для ноутбуков, чтобы уменьшить объем записи на диск, тем самым экономя батарею. Но потом я стал беспокоиться о том, что это может привести к потере данных (иногда моя батарея отключается, а затем при загрузке fsck рассказывает мне о нескольких сиротах inodes).

Искав объяснение этой опции, я пришел к следующим объяснениям (второй, похоже, противоречит моему предыдущему пониманию):

 $ man mount | awk '/commit=/,/^$/' commit=nrsec Sync all data and metadata every nrsec seconds. The default value is 5 seconds. Zero means default. 

https://forums.gentoo.org/viewtopic-p-4088752.html

commit = 60 останавливает «немедленный» (по умолчанию 5 секунд) приоритет записи над чтением, кэширование записей еще несколько секунд спустя. Это хорошо в ситуации тяжелого чтения и записи, смешанного вместе, когда пользователь хочет, чтобы чтения имели приоритет, чтобы процессор мог оставаться занятым, а не приостанавливаться, ожидая завершения записи, прежде чем он сможет продолжить чтение.

Реальный пример, который я видел, ждет несколько секунд, чтобы появилось раскрывающееся меню Gnome, по-видимому, без причины. Причина заключалась в том, что диск был занят написанием, поэтому ЦП должен был дождаться завершения записи, прежде чем он сможет получить все данные с диска, чтобы иметь возможность отображать меню.

Что действительно делает фиксация ? Существуют ли преимущества его увеличения (например, отзывчивость и энергосбережение)? Может ли это привести к потере данных?

Что действительно делает фиксация ?

Я думаю, что одно из лучших объяснений было дано здесь allquixotic .

Существуют ли преимущества его увеличения (например, отзывчивость и энергосбережение)? Может ли это привести к потере данных?

Согласно официальной документации ext4 :

Ext4 может быть сказано синхронизировать все свои данные и метаданные каждые «nrsec» секунд. Значение по умолчанию – 5 секунд. Это означает, что если вы потеряете свою силу, вы потеряете столько же, сколько последние 5 секунд работы (ваша файловая система не будет повреждена, хотя благодаря ведению журнала). Это значение по умолчанию (или любое низкое значение) ухудшит производительность, но это хорошо для безопасности данных . Установка его на 0 будет иметь тот же эффект, что и оставить его по умолчанию (5 секунд). Установка его на очень большие значения повысит производительность .

Увеличение значения commit означает, что вы можете потерять столько же, сколько последние N секунд работы (где N = фиксация интервала), хотя большую часть времени это не произойдет, поскольку программное обеспечение все равно может вызвать fsync () и получить свои данные, записанные на диск, переопределяя параметр фиксации. Вы могли бы взглянуть на это как на «как можно чаще пишите на диск» . 1
С другой стороны, это означает меньшее количество записей (что делает его довольно популярным среди пользователей ssd) и более высокую производительность (множественные записи объединены в одну большую запись, обновления предыдущих записей в пределах периода фиксации отменены).
Что касается экономии энергии, то, согласно этой странице , выясняется, что в настоящее время увеличение значения commit не экономит электроэнергию.