Diferencia entre las opciones de montaje 'sync' y 'async'

42

¿Cuál es la diferencia entre syncy asyncopciones de montaje desde el punto de vista del usuario final? ¿El sistema de archivos montado con una de estas opciones funciona más rápido que si se monta con otra? ¿Qué opción es la predeterminada, si ninguna de ellas está configurada?

man mountdice que esa syncopción puede reducir la vida útil de la memoria flash, pero puede ser por la sabiduría convencional obsoleta. De todas formas esto me preocupa un poco, porque mi disco duro principal, donde las particiones /y /homese colocan, es duro SSD.

Ubuntu instalador (14.04) no han especificado syncni asyncopción de /partición, pero se han establecido asyncpara /homela opción defaults. Aquí está mi /etc/fstab, agregué algunas líneas adicionales (ver comentario), pero no cambié nada en las líneas hechas por el instalador:

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

Así que si mi /dev/sdaes SSD, debería hacerlo - en aras de reducir el desgaste - Añadir asyncopción para /y /homesistemas de archivos? ¿Debo establecer syncu asyncopción para particiones adicionales que definí en mi /etc/fstab? ¿Cuál es el enfoque recomendado para las unidades SSD y HDD?


fuente
1
No cruce la publicación askubuntu.com/questions/502691/…
cuonglm
@Gnouc ¿Qué hay de malo en la publicación cruzada? De todos modos, eliminé la publicación de Ask Ubuntu, como lo solicitaste.

Respuestas:

50

asynces lo contrario de sync, que rara vez se usa. asynces el valor predeterminado, no necesita especificarlo explícitamente.

La opción syncsignifica que todos los cambios en el sistema de archivos correspondiente se vuelcan inmediatamente al disco; Se esperan las respectivas operaciones de escritura. Para las unidades mecánicas, eso significa una gran desaceleración, ya que el sistema tiene que mover los cabezales del disco a la posición correcta; con syncel proceso userland tiene que esperar a que se complete la operación. En contraste, con asyncel sistema amortigua la operación de escritura y optimiza las escrituras reales; mientras tanto, en lugar de ser bloqueado, el proceso en userland continúa ejecutándose. (Si algo sale mal, entonces close()regresa -1con errno = EIO).

SSD: no sé qué tan rápido se compara la memoria SSD con la memoria RAM, pero ciertamente no es más rápida, por lo que synces probable que afecte el rendimiento, aunque no es tan malo como con las unidades de disco mecánicas. A lo largo de la vida, la sabiduría sigue siendo válida, ya que escribir en un SSD mucho "la desgasta". El peor escenario sería un proceso que haga muchos cambios en el mismo lugar; con synccada uno de ellos golpea el SSD, mientras que con async(el valor predeterminado) el SSD no verá la mayoría de ellos debido al almacenamiento en búfer del kernel.

Al final del día, no te molestes sync, lo más probable es que estés bien async.

contramodo
fuente
en el caso de que una aplicación local esté borrando y escribiendo en la unidad montada (apuntando a un cuadro externo de Windows); ¿Existe la posibilidad de que el modo asíncrono predeterminado no sea seguro? El escenario es una aplicación de sondeo, que busca en una carpeta en el soporte, procesa las subcarpetas y luego las elimina.
HellishHeat
@HellishHeat Debe hacer esto como una pregunta separada con suficientes detalles del escenario que tiene en mente.
contramodo
¿Cuál es la velocidad de las diferentes capas de almacenamiento: ram es nanosegundos, flash es microsegundos (10 para escrituras, aproximadamente 100 para lecturas), disco rotacional es milisegundos (mejor caso de 5 ms, 10 a 100 ms si la cola del disco está respaldada y los accesos son al azar) Las escrituras en una única ubicación en un dispositivo flash pueden escribir en una SRAM respaldada por condensador y no escribirse en NAND. Por lo tanto, es difícil determinar el desgaste o el impacto de la velocidad.
Brian Bulkowski el
¿Tiene éste media no hay necesidad de llamar synco fsynco fdatasyncllamadas al sistema en una sincronización montado fs?
CMCDragonkai
1
@ini Puede correr el riesgo de perder datos con async. Sin embargo, si esto es un problema, entonces syncno es la respuesta: la penalización de rendimiento synces simplemente prohibitiva.
contramode
5

Palabras de precaución: el uso de la opción de montaje 'asíncrono' podría no ser la mejor idea si tiene un soporte en el que se escribe constantemente (por ejemplo, registros valiosos, grabaciones de cámaras de seguridad, etc.) y no está protegido contra cortes de energía repentinos . Puede resultar en registros faltantes o datos incompletos (inútiles). Ejemplo no tan inteligente: imagine a un ladrón entrando en una tienda e inmediatamente cortando el cable de alimentación de la cámara. La grabación de video del robo se grabó, pero es posible que no se haya vaciado / sincronizado con el disco ya que (o partes de él) podrían haberse almacenado en la memoria intermedia, por lo que se perdió cuando la cámara perdió energía.

Andreas Mikael Bank
fuente
Los servidores modernos tienen cachés de disco respaldados por batería en los controladores RAID, lo que evitará la pérdida de datos incluso en caso de pérdida de energía.
tonioc
async no escribe durante muchos segundos? ¿Cuántos segundos aproximadamente?
Ini
@Ini parece que depende del sistema de archivos utilizado, creo.
bd1251252
De todos modos, el sistema operativo debe garantizar que, cuando cierre, todo se escriba en el ssd / hdd. En el caso de un corte de energía, puede perder algunos datos. ¿Lo que digo es correcto?
Ini
La memoria caché basada en batería en algunos discos no es realmente una razón para no optimizar la pérdida de energía 1) que solo se encuentra en servidores profesionales caros. No todos los usuarios tendrán esto 2) solo lo salvará en la situación en que los datos incluso hayan llegado al controlador de disco. En muchos casos, estará atascado en la memoria caché del sistema operativo, mucho antes de que el controlador pueda ver esos datos, y eso se perderá en caso de una falla de energía.
Cray