A actualización de Atime afecta o rendemento do sistema. O que está a suceder alí e que facer ao respecto - le o artigo.
Sempre que actualizo Linux no meu ordenador doméstico, teño que resolver certos problemas. Co paso dos anos, isto converteuse nun hábito: fago unha copia de seguranza dos meus ficheiros, limpo o sistema, instalo todo desde cero, restauro os meus ficheiros e reinstalo as miñas aplicacións favoritas. Tamén cambio a configuración do sistema para que se adapte a min. Ás veces leva moito tempo. E recentemente pregunteime se necesitaba esta dor de cabeza.
tempo é unha das tres marcas de tempo para ficheiros en Linux (máis sobre isto máis adiante). En particular, preguntábame se aínda sería unha boa idea desactivar atime nos sistemas Linux máis recentes. Dado que atime se actualiza cada vez que se accede ao ficheiro, decateime de que ten un impacto significativo no rendemento do sistema.
Recentemente actualicei a Fedora 32 e, por costume, comecei desactivando atime. Pensei: realmente o necesito? Decidín estudar este tema e isto foi o que desenterrei.
Un pouco sobre as marcas de tempo dos ficheiros
Para descubrilo, cómpre dar un paso atrás e lembrar algunhas cousas sobre os sistemas de ficheiros Linux e como o kernel marca os ficheiros e directorios. Podes ver a última data de modificación dos ficheiros e directorios executando o comando ls -l (longo) ou simplemente mirando a información sobre ela no xestor de ficheiros. Pero entre bastidores, o núcleo de Linux fai un seguimento de varias marcas de tempo para ficheiros e directorios:
- Cando foi a última modificación do ficheiro (mtime)
- Cando foi a última vez que se cambiaron as propiedades do ficheiro e os metadatos (ctime)
- Cando se accedeu por última vez ao ficheiro (a hora)
- Podes usar o comando statpara ver información sobre un ficheiro ou directorio. Aquí está o arquivo / etc / fstab dun dos meus servidores de proba:
$ stat fstab
File: fstab
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2097285 Links: 1
Access: (0664/-rw-rw-r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: system_u:object_r:etc_t:s0
Access: 2019-04-25 21:10:18.083325111 -0500
Modify: 2019-05-16 10:46:47.427686706 -0500
Change: 2019-05-16 10:46:47.434686674 -0500
Birth: 2019-04-25 21:03:11.840496275 -0500
Aquí podes ver que este ficheiro foi creado o 25 de abril de 2019 cando instalei o sistema. O meu arquivo / etc / fstab modificouse por última vez o 16 de maio de 2019 e todos os demais atributos modificáronse ao mesmo tempo.
Se copio / etc / fstab a un ficheiro novo, as datas cambian para indicar que se trata dun ficheiro novo:
$ sudo cp fstab fstab.bak
$ stat fstab.bak
File: fstab.bak
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2105664 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:53:58.443659981 -0500
Birth: 2020-05-12 17:53:58.442659986 -0500
Pero se só cambio o nome do ficheiro sen cambiar o seu contido, Linux só actualizará o momento en que se modificou o ficheiro:
$ sudo mv fstab.bak fstab.tmp
$ stat fstab.tmp
File: fstab.tmp
Size: 261 Blocks: 8 IO Block: 4096 regular file
Device: b303h/45827d Inode: 2105664 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Context: unconfined_u:object_r:etc_t:s0
Access: 2020-05-12 17:53:58.442659986 -0500
Modify: 2020-05-12 17:53:58.443659981 -0500
Change: 2020-05-12 17:54:24.576508232 -0500
Birth: 2020-05-12 17:53:58.442659986 -0500
Estas marcas de tempo son moi útiles para certos programas Unix. Por exemplo, biff é un programa que che avisa cando hai unha nova mensaxe no teu correo electrónico. Hoxe en día poucas persoas usan
Como sabe o programa se tes correo novo na túa caixa de entrada? biff compara a hora da última modificación (cando se actualizou o ficheiro da caixa de entrada cunha nova mensaxe de correo electrónico) e a hora do último acceso (a última vez que leu o correo electrónico). Se o cambio se produciu máis tarde do acceso, entón biff entenderá que chegou unha nova carta e notificarao. O cliente de correo electrónico Mutt funciona do mesmo xeito.
A marca de tempo do último acceso tamén é útil se necesitas recoller estatísticas de uso do sistema de ficheiros e axustar o rendemento. Os administradores do sistema necesitan saber a que obxectos se accede para poder configurar o sistema de ficheiros en consecuencia.
Pero a maioría dos programas modernos xa non precisan desta etiqueta, polo que houbo unha proposta para non usala. En 2007, Linus Torvalds e varios outros desenvolvedores do núcleo discutiron sobre atime no contexto dun problema de rendemento. O desenvolvedor do núcleo de Linux Ingo Molnar fixo o seguinte punto sobre atime e o sistema de ficheiros ext3:
"É bastante estraño que todos os escritorios e servidores Linux sufran unha notable degradación do rendemento da E/S debido ás constantes actualizacións de atime, aínda que só hai dous usuarios reais: tmpwatch [que se pode configurar para usar ctime, polo que non é un gran problema] e algunhas ferramentas de copia de seguridade".
Pero a xente aínda usa algúns programas que precisan desta etiqueta. Polo tanto, eliminar atime romperá a súa funcionalidade. Os desenvolvedores do núcleo de Linux non deberían violar a liberdade do usuario.
Solución de Salomón
Hai moitas aplicacións incluídas nas distribucións de Linux e ademais, os usuarios poden descargar e instalar outros programas segundo as súas necesidades. Esta é unha vantaxe fundamental dun sistema operativo de código aberto. Pero isto dificulta optimizar o rendemento do seu sistema de ficheiros. A eliminación de compoñentes que consumen moito recursos pode perturbar o sistema.
Como compromiso, os desenvolvedores do núcleo de Linux introduciron unha nova opción de tempo de retransmisión que pretende lograr un equilibrio entre rendemento e compatibilidade:
atime actualízase só se o tempo de acceso anterior é inferior ao tempo de modificación ou cambio de estado actual... Desde Linux 2.6.30, o núcleo usa esta opción por defecto (a non ser que se especifique noatime)... Ademais, dende Linux 2.6.30 . 1, a última hora de acceso a un ficheiro sempre se actualiza se ten máis de XNUMX día.
Os sistemas Linux modernos (desde Linux 2.6.30, lanzado en 2009) xa usan tempo de retransmisión, o que debería dar un gran impulso de rendemento. Isto significa que non precisa configurar o ficheiro / etc / fstab, e co tempo de retransmisión podes confiar no predeterminado.
Mellorando o rendemento do sistema con noatime
Pero se queres axustar o teu sistema para obter o máximo rendemento, aínda é posible desactivar a hora.
O cambio de rendemento pode non ser moi perceptible en unidades modernas moi rápidas (como NVME ou Fast SSD), pero hai un pequeno aumento alí.
Se sabe que non está a usar software que require atime, pode mellorar lixeiramente o rendemento activando a opción noatime no ficheiro /etc/fstab. Despois diso, o núcleo non se actualizará constantemente. Use a opción noatime ao montar o sistema de ficheiros:
/dev/mapper/fedora_localhost--live-root / ext4 defaults,noatime,x-systemd.device-timeout=0 1 1
UUID=be37c451-915e-4355-95c4-654729cf662a /boot ext4 defaults,noatime 1 2
UUID=C594-12B1 /boot/efi vfat umask=0077,shortname=winnt 0 2
/dev/mapper/fedora_localhost--live-home /home ext4 defaults,noatime,x-systemd.device-timeout=0 1 2
/dev/mapper/fedora_localhost--live-swap none swap defaults,x-systemd.device-timeout=0 0 0
Os cambios terán efecto a próxima vez que reinicie.
Sobre os dereitos da publicidade
Necesitas un servidor para aloxar o teu sitio web? A nosa empresa ofrece
Fonte: www.habr.com