В чем разница между вариантами монтирования sync
и async
с точки зрения конечного пользователя? Смонтирована ли файловая система с одним из этих параметров быстрее, чем с другим? Какой вариант является вариантом по умолчанию, если ни один из них не установлен?
man mount
говорит, что этот sync
вариант может сократить срок службы флэш-памяти, но это может устареть общепринятым мнением. Во всяком случае это касается меня немного, потому что моего основного жесткого диска, где перегородка /
и /home
размещена, это SSD диска.
Ubuntu инсталлятор (14,04) не указан sync
ни async
опция для /
раздела, но установить async
для /home
опции defaults
. Вот мой /etc/fstab
, я добавил несколько дополнительных строк (см. Комментарий), но ничего не изменил в строках, сделанных установщиком:
# / was on /dev/sda2 during installation
UUID=7e4f7654-3143-4fe7-8ced-445b0dc5b742 / ext4 errors=remount-ro 0 1
# /home was on /dev/sda3 during installation
UUID=d29541fc-adfa-4637-936e-b5b9dbb0ba67 /home ext4 defaults 0 2
# swap was on /dev/sda4 during installation
UUID=f9b53b49-94bc-4d8c-918d-809c9cefe79f none swap sw 0 0
# here goes part written by me:
# /mnt/storage
UUID=4e04381d-8d01-4282-a56f-358ea299326e /mnt/storage ext4 defaults 0 2
# Windows C: /dev/sda1
UUID=2EF64975F6493DF9 /mnt/win_c ntfs auto,umask=0222,ro 0 0
# Windows D: /dev/sdb1
UUID=50C40C08C40BEED2 /mnt/win_d ntfs auto,umask=0222,ro 0 0
Так что, если мой /dev/sda
является SSD, я должен - ради снижения износа - добавить async
опции для /
и /home
файловых систем? Должен ли я установить sync
или async
опцию для дополнительных разделов, которые я определил в моем /etc/fstab
? Какой подход рекомендуется для SSD и HDD накопителей?
Ответы:
async
является противоположностью томуsync
, что редко используется.async
по умолчанию, вам не нужно указывать это явно.Опция
sync
означает, что все изменения в соответствующей файловой системе немедленно сбрасываются на диск; соответствующие операции записи ожидаются. Для механических приводов это означает значительное замедление, поскольку система должна перемещать головки дисков в правильное положение; сsync
пользовательским процессом должен ждать завершения операции. В отличие отasync
этого, система буферизует операцию записи и оптимизирует фактическую запись; тем временем, вместо того, чтобы быть заблокированным, процесс в пользовательском пространстве продолжает выполняться. (Если что-то идет не так,close()
возвращается-1
сerrno = EIO
.)SSD: я не знаю, насколько быстро SSD-память сравнивается с RAM-памятью, но, конечно, она не быстрее, поэтому
sync
может привести к снижению производительности, хотя и не так плохо, как с механическими дисками. На протяжении всей жизни мудрость остается в силе, поскольку запись на SSD сильно «стирает» ее. Худший сценарий - это процесс, который вносит множество изменений в одно и то же место; сsync
каждым из них попадет на SSD, в то время как сasync
(по умолчанию) SSD не увидит большинство из них из-за буферизации ядра.В конце концов, не беспокойтесь
sync
, скорее всего, вы в порядкеasync
.источник
sync
илиfsync
илиfdatasync
системные вызовы на синхронизированном fs?async
. Тем не менее, если это проблема, тоsync
это не ответ - снижение производительностиsync
просто непомерно.Предостережение: использование опции монтирования «асинхронно» может быть не самой лучшей идеей, если у вас есть монтируемое постоянное монтирование (например, ценные журналы, записи с камер наблюдения и т. Д.) И вы не защищены от внезапных отключений питания , Это может привести к отсутствию записей или неполным (бесполезным) данным. Не очень умный пример: представьте, как вор заходит в магазин и немедленно перерезает кабель питания камеры. Видеозапись взлома была записана, но, возможно, не была записана на диск / синхронизирована с диском, поскольку вместо этого он (или его части) мог быть помещен в буфер, таким образом, был потерян при отключении питания камеры.
источник