Différence entre les options de montage 'sync' et 'async'


42

Quelle est la différence entre syncet les asyncoptions de montage du point de vue de l'utilisateur final? Le système de fichiers monté avec l'une de ces options fonctionne-t-il plus rapidement que s'il était monté avec une autre? Quelle est l'option par défaut, si aucune n'est définie?

man mountindique que cette syncoption peut réduire la durée de vie de la mémoire flash, mais qu'elle peut être dépassée par la sagesse conventionnelle obsolète. Quoi qu'il en soit, cela me concerne un peu, car mon disque dur principal, où se trouvent les partitions /et /homesont placés, est un lecteur SSD.

Ubuntu installateur (14,04) n'a pas spécifié syncni asyncoption pour la /partition, mais ont mis asyncpour /homel'option defaults. Voici ma /etc/fstab, j'ai ajouté quelques lignes supplémentaires (voir commentaire), mais rien n'a changé dans les lignes faites par l'installateur:

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

Donc , si mon /dev/sdaest SSD, devrais - je - pour le bien de réduire l' usure - add asyncoption /et les /homesystèmes de fichiers? Devrais-je définir syncou une asyncoption pour les partitions supplémentaires que j'ai définies dans mon /etc/fstab? Quelle est l'approche recommandée pour les disques SSD et HDD?



@ Gnouc Qu'est-ce qui ne va pas avec l'affichage croisé? Quoi qu'il en soit, j'ai supprimé le message de Ask Ubuntu, comme vous l'avez demandé.

Réponses:


50

asyncest le contraire de sync, qui est rarement utilisé. asyncest la valeur par défaut, vous n’avez pas besoin de le spécifier explicitement.

L'option syncsignifie que toutes les modifications apportées au système de fichiers correspondant sont immédiatement vidées sur le disque. les opérations d'écriture respectives sont attendues. Pour les lecteurs mécaniques, cela signifie un ralentissement considérable du fait que le système doit déplacer les têtes de disque dans la bonne position; avec syncle processus utilisateur doit attendre la fin de l’opération. En revanche, avec asyncle système met en tampon l'opération d'écriture et optimise les écritures réelles; pendant ce temps, au lieu d’être bloqué, le processus continue de s’exécuter dans le pays d’utilisateur. (Si quelque chose ne va pas, puis close()revient -1avec errno = EIO.)

SSD: Je ne sais pas à quelle vitesse la mémoire SSD est comparée à la mémoire RAM, mais elle n’est certainement pas plus rapide, elle syncrisque donc de nuire aux performances, mais pas autant que les disques durs mécaniques. Dès le début de la vie, la sagesse est toujours valable, car écrire sur un disque SSD le "corrode" beaucoup. Le pire scénario serait un processus qui apporte de nombreux changements au même endroit; avec syncchacun d’entre eux frappe le SSD, tandis que avec async(par défaut) le SSD ne verra pas la plupart d’entre eux en raison de la mise en mémoire tampon du noyau.

En fin de compte, ne vous embêtez pas sync, il est fort probable que cela vous va async.


dans le cas où une application locale est en train de supprimer et d'écrire sur le lecteur monté (en pointant sur une boîte Windows externe); le mode async par défaut est-il potentiellement dangereux? Le scénario est une application d'interrogation, qui recherche dans un dossier du montage, traite les sous-dossiers puis les supprime.
HellishHeat

@HellishHeat Vous devriez poser cette question séparément, avec suffisamment de détails sur le scénario que vous envisagez.
contre-mode

Quelle est la vitesse des différentes couches de stockage: ram est en nanoseconde, flash en microsecondes (10 pour les écritures, environ 100 pour les lectures), le disque en rotation est en millisecondes (5 ms dans le meilleur des cas, 10 à 100 ms si la file d'attente du disque est sauvegardée et les accès sont aléatoires). Les écritures dans un seul emplacement sur un périphérique flash peuvent écrire dans une mémoire SRAM protégée par condensateur et ne pas être écrites intégralement dans NAND. Il est donc difficile de déterminer l’usure ou l’impact de la vitesse.
Brian Bulkowski

Est - ce un moyen n'a pas besoin d'appel syncou fsyncou fdatasyncsyscalls sur une synchronisation monté fs?
CMCDragonkai

1
@ini Vous risquez de perdre des données avec async. Cependant, si cela pose un problème, syncla solution n’est pas satisfaisante: la pénalité de performance syncest tout simplement prohibitive.
contre-mode

5

Mise en garde: l'utilisation de l'option de montage 'asynchrone' peut ne pas être la meilleure idée si un montage est écrit en permanence sur celui-ci (par exemple, des journaux précieux, des enregistrements de caméras de surveillance, etc.) et que vous n'êtes pas protégé contre les coupures de courant soudaines. . Cela pourrait entraîner des enregistrements manquants ou des données incomplètes (inutiles). Exemple pas très intelligent: imaginez un voleur pénétrer dans un magasin et couper immédiatement le câble d'alimentation de l'appareil photo. L'enregistrement vidéo du cambriolage a été enregistré, mais n'a peut-être pas été vidé / synchronisé sur le disque car celui-ci (ou une partie de celui-ci) a peut-être été mis en mémoire tampon. Il a donc été perdu en cas de perte d'alimentation.


Les serveurs modernes disposent de caches de disques sauvegardés sur batterie dans les contrôleurs RAID, ce qui évite la perte de données, même en cas de panne de courant.
tonioc

async n'écrit pas pendant plusieurs secondes? Combien de secondes environ?
Ini

@Ini semble que cela dépend du système de fichiers utilisé, je crois.
bd1251252

Le système d’exploitation doit de toute façon s’assurer que lors de l’arrêt, tout est écrit en ssd / hdd. En cas de panne de courant, vous risquez de perdre des données. Est-ce que ce que je dis est correct?
Ini

Le cache à batterie de certains disques n’est vraiment pas une raison pour ne pas optimiser les pertes de courant 1), mais uniquement sur les serveurs professionnels coûteux. Tous les utilisateurs n'auront pas cette 2) cela ne vous sauvera que dans la situation où les données ont même atteint le contrôleur de disque. Dans de nombreux cas, il restera bloqué dans le cache du système d'exploitation, bien avant que le contrôleur ne voie ces données - et celles-ci seront perdues en cas de panne de courant.
Cray
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.