Разница между опциями монтирования 'sync' и 'async'


42

В чем разница между вариантами монтирования 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 накопителей?


1
Не пересекайте сообщение askubuntu.com/questions/502691/…
cuonglm

@Gnouc Что не так с кросспостингом? В любом случае, я удалил сообщение из Ask Ubuntu, как Вы и просили.

Ответы:


50

asyncявляется противоположностью тому sync, что редко используется. asyncпо умолчанию, вам не нужно указывать это явно.

Опция syncозначает, что все изменения в соответствующей файловой системе немедленно сбрасываются на диск; соответствующие операции записи ожидаются. Для механических приводов это означает значительное замедление, поскольку система должна перемещать головки дисков в правильное положение; с syncпользовательским процессом должен ждать завершения операции. В отличие от asyncэтого, система буферизует операцию записи и оптимизирует фактическую запись; тем временем, вместо того, чтобы быть заблокированным, процесс в пользовательском пространстве продолжает выполняться. (Если что-то идет не так, close()возвращается -1с errno = EIO.)

SSD: я не знаю, насколько быстро SSD-память сравнивается с RAM-памятью, но, конечно, она не быстрее, поэтому syncможет привести к снижению производительности, хотя и не так плохо, как с механическими дисками. На протяжении всей жизни мудрость остается в силе, поскольку запись на SSD сильно «стирает» ее. Худший сценарий - это процесс, который вносит множество изменений в одно и то же место; с syncкаждым из них попадет на SSD, в то время как с async(по умолчанию) SSD не увидит большинство из них из-за буферизации ядра.

В конце концов, не беспокойтесь sync, скорее всего, вы в порядке async.


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

@ HellishHeat Вы должны задать это как отдельный вопрос с достаточным количеством деталей сценария, который вы имеете в виду.
countermode

Какова скорость разных уровней хранения: оперативная память - это наносекунда, флэш-память - микросекунды (10 секунд для записи, около 100 для чтения), вращающийся диск - миллисекунды (в лучшем случае 5 мс, от 10 до 100 мс, если резервная копия диска резервируется, и доступы являются случайными). Запись в одно место на флэш-устройстве может выполнять запись в SRAM с поддержкой конденсатора и не записываться полностью в NAND. Таким образом, трудно определить износ или скорость удара.
Брайан Булковски

Означает ли это, что не нужно вызывать syncили fsyncили fdatasyncсистемные вызовы на синхронизированном fs?
CMCDragonkai

1
@ini Вы можете рискнуть потерей данных async. Тем не менее, если это проблема, то syncэто не ответ - снижение производительности syncпросто непомерно.
режим

5

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


Современные серверы имеют кэш-диски с резервным питанием в контроллерах RAID, что предотвратит потерю данных даже в случае потери питания.
tonioc

async не пишет много секунд? Сколько секунд примерно?
Ини

@ Ini, кажется, зависит от используемой файловой системы.
bd1251252

В любом случае ОС должна гарантировать, что при завершении работы все записывается в ssd / hdd. В случае отключения питания вы можете потерять некоторые данные. Правильно ли то, что я говорю?
Ини

Кэш-память на некоторых дисках на самом деле не является причиной для оптимизации энергопотерь 1), это только на дорогих профессиональных серверах. Не у всех пользователей будет это 2) это спасет вас только в ситуации, когда данные вообще достигли контроллера диска. Во многих случаях он застревает в кеше ОС задолго до того, как контроллер когда-либо увидит эти данные - и они будут потеряны в случае сбоя питания.
Cray
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.