GNU/Linux >> Tutoriales Linux >  >> Linux

¿Comando que obligará a Linux a vaciar el caché de un archivo en un recurso compartido Nfs?

En relación con esta pregunta sobre StackOverflow, me pregunto si hay alguna manera de vaciar la memoria caché de NFS/obligar a Linux a ver la copia más actualizada de un archivo que se encuentra en un recurso compartido de NFS.

Tengo una situación en la que cuatro servidores Apache montan el mismo directorio a través de NFS, y cuando un servidor realiza un cambio en un archivo, los otros servidores tardan entre 5 y 10 segundos en ver ese cambio. Si se realiza un segundo cambio en ese archivo dentro de esta ventana, es posible que se sobrescriba el primer cambio.

El fstab la entrada para el sistema de archivos es:

172.16.1.15:/home               /media/home     nfs     vers=3,defaults,noauto,sync,acregmin=1          0       0

¿Hay algún comando que obligue a Linux a vaciar el caché de un archivo en un recurso compartido NFS?

Respuesta aceptada:

Verifique estos elementos y vea si alguno funciona para usted:

  1. En el cliente , si aún no está utilizando el cto opción en las opciones columna de /etc/fstab línea para su sistema de archivos NFS, agréguelo. cto le dice al cliente nfs que abra archivos a través de cerrar para abrir, lo que hace que actualicen el archivo cada vez que lo abren.

  2. En el servidor , asegúrese de que su sistema de archivos se exporte con sync opción, y no async . Con las escrituras sincrónicas, el cliente se vaciará en el disco cuando se cierre el archivo. (o con nfs V3, cada vez que se realiza un commit() ). Puede haber un impacto en el rendimiento de esa manera, pero si está escribiendo en un sistema de archivos NFS, definitivamente desea sync establecer.

  3. Siguiendo los pasos de esa publicación de stackoverflow, abrir un archivo con O_DIRECT solo funciona si el núcleo se compiló con CONFIG_NFS_DIRECTIO.

  4. Además, asegúrese de tener las siguientes configuraciones en su archivo httpd.conf:

    • EnableMMAP off
    • EnableSendfile off

    De la documentación de ajuste de rendimiento de apache:

    • Si asigna en memoria un archivo ubicado en un sistema de archivos montado en NFS y un proceso en otra máquina cliente NFS elimina o trunca el archivo, su proceso puede recibir un error de bus la próxima vez que intente acceder al contenido del archivo asignado.
    • Desactivar EnableSendfile no ayudará específicamente con el comportamiento de sincronización/asincronía de NFS, pero debe desactivarse si está utilizando apache con NFS.

Linux
  1. Comando wc de linux

  2. Comando grep de Linux

  3. Ejemplos de comandos ln en Linux

  4. Ejemplos de comandos de archivo en Linux

  5. Un comando para crear un directorio y un archivo dentro de él comando de Linux

Linux qué comando

Menos comando en Linux

Comando Cp en Linux (Copiar archivos)

Comando Gzip en Linux

Comando Gunzip en Linux

Comando Stat en Linux