Defaultně je ext3 nastavená na vysokou bezpečnost (až paranoidní). Je tedy jasné, že půjde dobře optimalizovat. Sepsal jsem několik úprav, které sám používám a to podle toho, jak snadno se dají aplikovat (od nutnosti vytvořit celý FS znova, po pouhou změnu parametrů mountování).
Určení filesystému (při vytváření)
- news – inoda na 4kB – pro malé soubory
- largefile – inoda na 1MB
- largefile4 – inoda na 4MB – pro velké soubory
Tato nastavení také ovlivní max. počet souborů uložitelných na filesystém a sekundárně i rychlost fsck (nemusí procházet tolik bloků). Určuje se při vytváření filesystému mkfs.ext3 /dev/hda1 -T news
(např). Na systémovém oddíle je dobré nechat výchozí news. (A na větší datové oddíly XFS :-) )
dir_index (vlastnost ext3)
Použije hashovaný b-strom pro rychlejší vyhledávání v adresářích s mnoha soubory. Po zapnutí této volby tune2fs -O dir_index /dev/hda1
) je nutné provést fsck.ext3 -Df
(během něj se vytvoří index). Nutné disk odpojit, nechat přechroustat fsck a znova namountovat.
writeback (žurnál)
Nejrychlejší nastavení žurnálu. Garantuje konzistenci filesystému, ovšem nezaručuje konzistenci dat. Určuje se parametry při mountování (data=writeback) nebo příkazem tune2fs -o journal_data_writeback /dev/hda1
(k projevení změn stačí remount).
commit (volba při mountu)
Udává nejdelší možný interval, během něhož se zapisují změny ve struktuře filesystému na disk (mohou se zapisovat i častěji). Například po resetu bude disk ve stavu, kdy se naposledy provedl commit. Určuje se parametry při mountování, k projevení změn stačí remount. Commit mám nastavený na 30s (default je 5s). Je to doba dostatečně dlouhá na dokončení všech systémových úkonů (ty jsou navíc dokončeny rychleji, když hlavička disku nemusí neustále kmitat a zapisovat žurnál) a dostatečně krátká, aby se výpadek proudu nerovnal katastrofě.
noatime (volba při mountu)
Nezapisuje čas čtení souboru. Tento čas může být používán některými skripty, v praxi jsem však žádný nenašel. Nastavuje se parametry při mountování.