GNU/Linux >> Linux Esercitazione >  >> Linux

Comando che forzerà Linux a svuotare la cache di un file su una condivisione Nfs?

In relazione a questa domanda su StackOverflow, mi chiedo se c'è un modo per svuotare la cache NFS / forzare Linux a vedere la copia più aggiornata di un file che si trova su una condivisione NFS.

Ho una situazione in cui quattro server Apache montano la stessa directory tramite NFS e quando un server apporta una modifica a un file, ci vogliono circa 5-10 secondi affinché gli altri server vedano tale modifica. Se viene apportata una seconda modifica a quel file all'interno di questa finestra, potrebbe sovrascrivere la prima modifica.

Il fstab la voce per il filesystem è:

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

Esiste un comando che forzerà Linux a svuotare la cache di un file su una condivisione NFS?

Risposta accettata:

Controlla questi elementi e vedi se qualcuno funziona per te:

  1. Sul cliente , se non stai già utilizzando cto opzione nelle opzioni colonna del /etc/fstab riga per il tuo filesystem NFS, aggiungilo. cto dice al client nfs di aprire i file tramite close-to-open, che gli fa aggiornare il file ogni volta che lo apre.

  2. Sul server , assicurati che il tuo filesystem sia esportato con sync opzione, e non async . Con le scritture sincrone, il client verrà scaricato su disco quando il file viene chiuso. (o con nfs V3, ogni volta che viene eseguito un commit() ). Potrebbe esserci un calo delle prestazioni in questo modo, ma se stai eseguendo scritture su un filesystem NFS, vuoi sicuramente sync impostato.

  3. Sulla scia di quel post di stackoverflow, l'apertura del file con O_DIRECT funziona solo se il kernel è stato compilato con CONFIG_NFS_DIRECTIO.

  4. Inoltre, assicurati di avere le seguenti impostazioni nel tuo file httpd.conf:

    • EnableMMAP off
    • EnableSendfile off

    Dalla documentazione di ottimizzazione delle prestazioni di Apache:

    • Se si esegue la mappatura della memoria di un file che si trova su un filesystem montato su NFS e un processo su un altro computer client NFS elimina o tronca il file, il processo potrebbe ricevere un errore di bus la prossima volta che tenterà di accedere al contenuto del file mappato.
    • La disattivazione di EnableSendfile non aiuta specificamente il comportamento di sincronizzazione/asincrono di NFS, ma deve essere disattivata se stai utilizzando Apache con NFS.

Linux
  1. Spiegazione dei tipi di file system Linux, quale dovresti usare

  2. Comando wc Linux

  3. comando Linux grep

  4. ln Esempi di comandi in Linux

  5. file Esempi di comandi in Linux

Linux quale comando

Meno comandi in Linux

Comando Cp in Linux (copia file)

Comando Gzip in Linux

Comando Gunzip in Linux

Comando Stat in Linux