Portál AbcLinuxu, 2. května 2025 13:42

Jak optimalizovat XFS

XFS je velice výkonný systém souborů vyvinutý společností SGI (Silicon Graphics). Má spoustu dobrých vlastností: dynamické vytváření inod (na rozdíl od statického jako např. v ext3), žurnálování (pouze metadat, podobně jako ostatní FS), quoty, acl (implementované přímo v FS), online defragmentaci, extenze, optimalizovaný přístup mnoha procesů (XFS rozděluje disk na AG – Allocation Groups, které mají vlastní supernode), vymezenou rychlost přístupu k datům (při přístupu přes DMAPI).

Co mu však příliš nejde je práce s mnoha malými soubory. Tedy, ne že by je neuměl uložit a přečíst :-), ale práce, zejména mazání, s větším množství souborů mu nejde příliš rychle. To se dá určitým nastavením zlepšit. Pojďme na to:

Velikost žurnálu

Žurnál je místo na disku, kam se ukládají veškeré operace s daty (vytvoření souboru, umístění do adresářové struktury, …). Pokud dojde k vypnutí systému, ovladač FS projde žurnál a opraví případné chyby. Díky tomu je oprava velice rychlá.

Velikost žurnálu se nastavuje při vytvoření FS a jeho velikost je možno nastavit parametrem -l size=xm, kde x udává velikost žurnálu v MB. Doporučuji nastavit na max tj. 128MB.

Poznámka: v následujícím textu budemu uvažovat /dev/disk jako pevný disk, diskový oddíl, LVM svazek a pod. zkrátka jakékoliv blokové zařízení pro umístění FS.
mkfs.xfs -l size=128m /dev/disk

Množství vyrovnávací paměti

XFS si ukládá spoustu dat v RAM, výchozí nastavení není příliš štědré. Nastavíme tedy počet bufferů na max tj. 8. Nastavuje se jako parametr při mountu:
/dev/disk   /mnt/YY   xfs   defaults,logbufs=8   1 2
Dále je možné si pohrát v velikostí těchto vyrovnávacích pamětí parametry biosize,logbsize, ty jsem nechal v defaultním nastavení. Více viz man mount, sekce xfs.

Čas posledního přístupu k souboru a adresáři

Standardně se na FS ukládá čas přístupu k jednotlivým souborům a dokonce do jednotlivých adresářů (což neplatí pouze pro XFS). Tato položka se prakticky nepoužívá, je tedy zbytečné ji ukládat. Nastavuje se parametry při mountu:
/dev/disk   /mnt/YY   xfs   defaults,noatime,nodiratime,logbufs=8   1 2

Online defragmentace

Zní to skoro jako vtip. Ze zkušeností vím, že XFS měl ze všech FS, se kterými jsem měl tu čest se setkat, nejnižší fragmentaci souborů a součastně jako jediný v Linuxu poskytuje nástroj na defragmentaci těch několika málo fragmentovaných souborů, aby spojil těch pár fragmentů. No což, další plus.

K defragmentaci XFS slouží nástroj xfs_fsr. Stačí jej spustit, sám si najde všechny připojené XFS oddíly (musí být připojené pro zápis) a tyto zoptimalizuje.

Související dokumenty

Tento článek na heronovi. (externí dokument)
Výběr FS (externí dokument)
Optimalizace ext3 (externí dokument)

Dokument vytvořil: Heron, 16.4.2007 10:05 | Poslední úprava: Heron, 5.8.2009 11:02 | Další přispěvatelé: Milan Vít | Historie změn | Zobrazeno: 1900×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.