Sincronizar

sync es una  utilidad de Unix para actualizar sistemas de archivos y para sincronizar datos en el disco con datos en la memoria [1] . Esto ejecuta la llamada al sistema de sincronización , lo que hace que todos los metadatos de archivos almacenados en búfer y los cambios de datos se escriban en los sistemas de archivos subyacentes. Garantiza que todo lo que se almacenó en la memoria se escriba en el disco, lo que evita que los datos almacenados en la memoria caché se pierdan si la operación falla.

También hay una llamada al sistema asociada int fsync(int fildes)que solicita que todos los datos de un descriptor de archivo abierto llamado fildes se transfieran al dispositivo de almacenamiento asociado con el archivo descrito por fildes.

Descripción

  sincronizar [ --help ] [ --version ]

La utilidad de sincronización hace que el administrador del sistema de archivos vacíe todos los inodos modificados y todos los búferes del sistema no escritos de la memoria principal al disco. Esto garantiza que se guarden todos los cambios en los archivos hasta la hora programada. sync primero escribe los inodos en los búferes y luego los búferes en el disco [2]

En Linux, la sincronización solo garantiza que se compile una lista de bloques "sucios" para escribir. Pasará algún tiempo antes de que se graben realmente. Los comandos de reinicio y detención tienen esto en cuenta al hacer una pausa de unos segundos después de ser llamados

Después de ejecutar el comando de sincronización, debe esperar suficiente tiempo para que se liberen las colas de los controladores y todos los datos se guarden por completo en el disco. La duración de esta pausa depende de la velocidad de los discos duros, la cantidad de búferes a procesar y la actividad del sistema durante este período.

La operación de sincronización consume una pequeña cantidad de recursos de la CPU. Además, tiene las siguientes ventajas [3] :

  • Grabación de datos compacta.
  • Escriba al menos 28 KB de datos del sistema, incluso si no se ha producido ninguna E/S desde la llamada de sincronización anterior.
  • Aceleración de la escritura de datos en el disco al deshabilitar el algoritmo de escritura diferida. Esta propiedad es especialmente importante para los programas que ejecutan fsync() después de cada operación de escritura.
  • Cuando se llama a sync() o fsync(), se realiza una entrada en el registro de JFS que indica que los datos modificados se han guardado en el disco.

Errores

Puede ocurrir un retorno de una llamada al sistema llamada syncpor una utilidad del mismo nombre antes de que se complete realmente la escritura. Sin embargo, desde la versión 1.3.30, Linux ha estado esperando el final de la escritura, lo que, sin embargo, no garantiza la integridad de los datos: los discos modernos tienen sus propios cachés grandes. [2]

Véase también

Notas

  1. Ubuntu Manpage: sync - Sincroniza los datos en el disco con los datos en la memoria . Consultado el 1 de agosto de 2019. Archivado desde el original el 17 de julio de 2019.
  2. 1 2 Ubuntu Manpage: sync - Escribe la memoria caché del búfer en el disco . Consultado el 1 de agosto de 2019. Archivado desde el original el 18 de julio de 2019.
  3. Centro de conocimiento de IBM

Enlaces