Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

3.7. Optimización de acceso de unidad de Relatime

El estándar POSIX requiere que los sistemas operativos mantengan metadatos de sistema de archivos que registren la última vez que cada archivo ha sido accedido. Esta marca de tiempo se denomina atime, y el mantenimiento de ésta requiere una serie constante de operaciones de escritura para almacenaje. Dichas escrituras mantienen dispositivos de almacenamiento y sus enlaces ocupados y encendidos. Puesto que pocas aplicaciones utilizan datos atime, esta actividad de dispositivo de almacenamiento desperdicia energía. La escritura a almacenamiento se presenta incluso si el archivo no fue leído desde el almacenaje, sino desde la memoria cache. Por algún tiempo, el kernel de Linux ha soportado la opción noatime para mount y no escribiría datos atime a sistemas de archivos montados con esta opción. Sin embargo, la desactivación de esta funcionalidad es problemática, puesto que algunas aplicaciones dependen de los datos de atime y fallarán si no está disponible.
El kernel utilizado en Red Hat Enterprise Linux 6 soporta otra alternativa — relatime. Relatime mantiene datos atime, pero no para cada vez que se acceda a un archivo. Con esta opción habilitada, los datos atime se escriben al disco únicamente si el archivo ha sido modificado desde la última vez que los datos atime fueron actualizados (mtime), o si el archivo fue accedido por un periodo de tiempo mayor (por defecto, un día).
Por defecto, todos los sistemas de archivos ahora se montan con relatime habilitada. Para suprimir esta función a través de todo el sistema, use el parámetro de arranque default_relatime=0. Si relatime está habilitada por defecto en un sistema, podrá suprimirla para un determinado sistema de archivos montando ese sistema de archivos con la opción norelatime. Por último, para variar la longitud predeterminada antes de que el sistema actualice los datos atime de un archivo, use el parámetro de arranque relatime_interval=, especificando el periodo en segundos. El valor predeterminado es 86400.