Differenza tra le opzioni di montaggio 'sync' e 'async'


42

Qual è la differenza tra synce asyncmontare le opzioni dal punto di vista dell'utente finale? Il file system montato con una di queste opzioni funziona più velocemente che se montato con un'altra? Quale opzione è quella predefinita, se nessuna è impostata?

man mountafferma che l' syncopzione potrebbe ridurre la durata della memoria flash, ma potrebbe essere per saggezza convenzionale obsoleta. In ogni caso questo mi preoccupa un po ', perché il mio disco rigido primario, in cui le partizioni /e /homesono posti, è l'unità SSD.

Ubuntu installer (14.04) non hanno specificato syncasyncopzione per la /partizione, ma hanno fissato asyncper /homedall'opzione defaults. Ecco il mio /etc/fstab, ho aggiunto alcune righe aggiuntive (vedi commento), ma non ho cambiato nulla nelle righe create dall'installer:

# / 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

Quindi, se il mio /dev/sdaè SSD, dovrei - per motivi di riduzione dell'usura - aggiungere asyncun'opzione per /e /homefile system? Devo impostare synco l' asyncopzione per le partizioni aggiuntive che ho definito nella mia /etc/fstab? Qual è l'approccio raccomandato per le unità SSD e HDD?


1
Non attraversare post askubuntu.com/questions/502691/…
cuonglm

@Gnouc Cosa c'è che non va nel crossposting? Ad ogni modo, ho eliminato post da Ask Ubuntu, come da lei richiesto.

Risposte:


50

asyncè l'opposto di sync, che viene usato raramente. asyncè l'impostazione predefinita, non è necessario specificarlo esplicitamente.

L'opzione syncindica che tutte le modifiche al file system corrispondente vengono immediatamente scaricate sul disco; le rispettive operazioni di scrittura sono in attesa. Per le unità meccaniche ciò significa un enorme rallentamento poiché il sistema deve spostare le testine del disco nella posizione corretta; con syncil processo userland deve attendere il completamento dell'operazione. Al contrario, con asyncil sistema bufferizza l'operazione di scrittura e ottimizza le scritture effettive; nel frattempo, invece di essere bloccato, il processo in userland continua a essere eseguito. (Se qualcosa va storto, quindi close()ritorna -1con errno = EIO.)

SSD: Non so quanto sia veloce la memoria SSD rispetto alla memoria RAM, ma certamente non è più veloce, quindi syncè probabile che riduca le prestazioni, anche se non è così male come con le unità disco meccaniche. Per tutta la vita, la saggezza è ancora valida, dal momento che scrivere su un SSD lo "consuma" molto. Lo scenario peggiore sarebbe un processo che apporta molte modifiche nello stesso posto; con syncognuna di esse colpisce l'SSD, mentre con async(impostazione predefinita) l'SSD non ne vedrà la maggior parte a causa del buffering del kernel.

Alla fine della giornata, non preoccuparti sync, è molto probabile che tu stia bene async.


nel caso in cui un'applicazione locale stia eliminando e scrivendo sull'unità montata (indicando una finestra esterna di Windows); esiste la possibilità che la modalità asincrona predefinita non sia sicura? Lo scenario è un'app di polling, che cerca in una cartella sul mount, inserisce le sottocartelle e poi le elimina.
HellishHeat,

@HellishHeat Dovresti porlo come una domanda separata con dettagli sufficienti sullo scenario che hai in mente.
Contromodalità

Qual è la velocità dei diversi livelli di archiviazione: ram è nanosecondo, flash è microsecondi (10 per scritture, circa 100 per letture), disco rotazionale è millisecondi (5 ms nella migliore delle ipotesi, 10 a 100ms se si esegue il backup della coda del disco e gli accessi sono casuali). Le scritture in una singola posizione su un dispositivo flash possono scrivere su una SRAM supportata da un condensatore e non essere scritte fino alla NAND. Pertanto è difficile determinare l'usura o la velocità dell'impatto.
Brian Bulkowski,

Questo significa che non è necessario chiamare synco fsynco fdatasyncsyscall su un fs montato sulla sincronizzazione?
CMCDragonkai,

1
@ini Potresti rischiare una perdita di dati con async. Tuttavia, se questo è un problema, allora syncnon è la risposta - la penalità di prestazione di syncè semplicemente proibitiva.
Contromodalità

5

Avvertenze: l'uso dell'opzione di montaggio 'asincrono' potrebbe non essere la migliore idea se si dispone di un montaggio su cui si scrive costantemente (es. Registri preziosi, registrazioni di telecamere di sicurezza, ecc.) E non si è protetti da improvvise interruzioni di corrente . Potrebbe risultare in record mancanti o dati incompleti (inutili). Esempio non così intelligente: immagina un ladro che entra in un negozio e taglia immediatamente il cavo di alimentazione della videocamera. La registrazione video dell'irruzione è stata registrata ma potrebbe non essere stata scaricata / sincronizzata con il disco poiché esso (o parte di esso) potrebbe essere stato bufferizzato in memoria, quindi si è perso quando la fotocamera ha perso energia.


I server moderni dispongono di cache del disco con alimentazione a batteria nei controller RAID, che impediranno la perdita di dati anche in caso di interruzione dell'alimentazione.
tonioc,

async non scrive per molti secondi? Quanti secondi circa?
Ini

@Ini sembra che dipenda dal filesystem in uso credo.
bd1251252,

Il sistema operativo dovrebbe comunque garantire che quando si arresta, tutto viene scritto su ssd / hdd. In caso di interruzione di corrente, è possibile che alcuni dati vengano persi. Quello che sto dicendo è corretto?
Ini,

La cache basata sulla batteria in alcuni dischi non è in realtà un motivo per non ottimizzare la perdita di potenza 1) presente solo in costosi server professionali. Non tutti gli utenti avranno questo 2) ti salverà solo nella situazione in cui i dati hanno addirittura raggiunto il controller del disco. In molti casi rimarrà bloccato nella cache del sistema operativo, molto prima che il controller vedrà mai quei dati e che andranno persi in caso di mancanza di corrente.
Cray
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.