GNU/Linux >> Znalost Linux >  >> Linux

Příkaz, který přinutí Linux vyprázdnit mezipaměť jednoho souboru na sdíleném NFS?

V souvislosti s touto otázkou na StackOverflow mě zajímá, jestli existuje způsob, jak vyprázdnit mezipaměť NFS / přinutit Linux, aby viděl nejaktuálnější kopii souboru, který je na sdílené složce NFS.

Mám situaci, kdy čtyři servery Apache připojují stejný adresář přes NFS, a když jeden server provede změnu souboru, trvá to asi 5 – 10 sekund, než ostatní servery tuto změnu uvidí. Pokud je v tomto okně provedena druhá změna tohoto souboru, může dojít k přepsání první změny.

fstab položka pro souborový systém je:

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

Existuje příkaz, který přinutí Linux vyprázdnit mezipaměť jednoho souboru na sdílené složce NFS?

Přijatá odpověď:

Zkontrolujte tyto položky a zjistěte, zda vám některá vyhovuje:

  1. U klienta , pokud ještě nepoužíváte cto možnost v možnostech sloupec /etc/fstab řádek pro váš souborový systém NFS, přidejte jej. cto říká klientovi nfs, aby otevíral soubory pomocí close-to-open, což mu umožňuje obnovit soubor, kdykoli jej otevřou.

  2. Na serveru , ujistěte se, že váš souborový systém je exportován pomocí sync možnost, nikoli async . Při synchronních zápisech se klient při zavření souboru vyprázdní na disk. (nebo s nfs V3, kdykoli se provede commit() ). Tímto způsobem může dojít ke snížení výkonu, ale pokud provádíte zápisy do souborového systému NFS, určitě chcete sync set.

  3. V návaznosti na tento příspěvek stackoverflow funguje otevření souboru pomocí O_DIRECT pouze v případě, že jádro bylo zkompilováno pomocí CONFIG_NFS_DIRECTIO.

  4. Také se ujistěte, že máte v souboru httpd.conf následující nastavení:

    • EnableMMAP off
    • EnableSendfile off

    Z dokumentace ladění výkonu Apache:

    • Pokud namapujete soubor umístěný na souborovém systému připojeném k NFS a proces na jiném klientském počítači NFS soubor odstraní nebo zkrátí, může váš proces při příštím pokusu o přístup k obsahu mapovaného souboru získat chybu sběrnice.
    • Vypnutí EnableSendfile konkrétně nepomůže se synchronizačním/asynchronním chováním NFS, ale pokud používáte apache s NFS, je potřeba jej vypnout.

Linux
  1. Příkaz wc pro Linux

  2. V příkladech příkazů v Linuxu

  3. soubor Příklady příkazů v Linuxu

  1. Vysvětlení typů souborových systémů Linux, který byste měli použít

  2. Linuxový příkaz grep

  3. Jeden příkaz pro vytvoření adresáře a souboru v něm linuxový příkaz

  1. Automatické připojení sdílení NFS v Linuxu pomocí autofs

  2. 8 Příklady příkazů hlavy v Linuxu

  3. 8 Příklady příkazů Stat v Linuxu