Різниця між параметрами монтажу "синхронізація" та "асинхронізація"


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/sdaSSD, я повинен - ​​для зменшення зносу - додати asyncопцію для /і /homeфайлових систем? Чи слід встановити syncабо вибрати asyncдля додаткових розділів, які я визначив у своєму /etc/fstab? Який рекомендований підхід для накопичувачів SSD та HDD?


1
Не перекреслюйте публікацію askubuntu.com/questions/502691/…
cuonglm

@Gnouc Що не так з перехресним постом? У будь-якому випадку я видалив повідомлення з Ask Ubuntu, як ви просили.

Відповіді:


49

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

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

SSD: Я не знаю, наскільки швидко пам'ять SSD порівнюється з оперативною пам'яттю, але, звичайно, вона не швидша, тому sync, швидше за все, це дає штрафну ефективність, хоча і не так погано, як з механічними дисководами. Що стосується всього життя, мудрість все ще діє, оскільки написання на SSD багато "зношує" її. Найгіршим сценарієм буде процес, який вносить багато змін у те саме місце; з syncкожним з них потрапляє в SSD, в той час як з async(за замовчуванням), SSD не бачитиме більшість з них з - за буферизації ядра.

Зрештою, не турбуйтеся sync, швидше за все, у вас все добре async.


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

@HellishHeat Вам слід задати це як окреме запитання з достатніми деталями сценарію, який ви маєте на увазі.
контрмоде

Яка швидкість різних шарів зберігання: оперативної пам’яті є наносекунда, спалах - мікросекунди (10 секунд для запису, близько 100 для читання), обертовий диск - мілісекунди (найкращий випадок - 5 мс, 10 - 100 мс, якщо резервна копія дискової копії та доступ до них є випадковими). Записи в одне місце на флеш-пристрої можуть записувати на SRAM, підтримуваний конденсатором, і не записуватись до NAND. Таким чином, важко визначити знос або швидкість удару.
Брайан Булковський

Чи означають це , один не потрібен виклик syncабо fsyncабо fdatasyncсистемні виклики на синхронізації ФС встановлено?
CMCDragonkai

1
@ini Ви можете ризикувати втратою даних async. Але якщо це питання, то syncце не відповідь - покарання за виконання результатів syncпросто заборонене.
контрмоде

5

Слова обережності: використання опції кріплення "async" може бути не найкращою ідеєю, якщо у вас є кріплення, на яке постійно записуються (наприклад, цінні журнали, записи камер безпеки тощо), і ви не захищені від раптових відключень електроенергії. . Це може призвести до відсутності записів або неповних (непотрібних) даних. Не дуже розумний приклад: уявіть, як злодій потрапляє в магазин і негайно перерізає кабель живлення камери. Відеозапис прориву був записаний, але, можливо, не був переданий / синхронізований на диск, оскільки він (або його частини) може бути заміщений в пам'ять, таким чином втратившись, коли камера втратила живлення.


Сучасні сервери мають керовані дисковими кешами в контролерах RAID, що запобігає втраті даних навіть у випадку втрати електроенергії.
tonioc

async не пише багато секунд? Скільки секунд приблизно?
Іні

@Ini, здається, це залежить від використовуваної файлової системи.
bd1251252

Операційна система все-таки повинна гарантувати, що при відключенні все записується на ssd / hdd. У разі відключення електроенергії ви можете втратити деякі дані. Це те, що я кажу, правильно?
Іні

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