Glen (Elan Ruusamäe z PLD) spytał mnie dziś o system plików, jaki polecałbym na serwer pocztowy. Chodziło o jego serwer, na którym zdechł był właśnie reiserfs. Zaproponowałem ext3 z journalingiem albo xfs ze zmniejszonym rozmiarem bloku (poczta = dużo małych plików).
Przy okazji przypomniało mi się, o czym miałem tu napisać dawno temu. Początkowo dla własnej pamięci, ale jakoś uleciało mi to z głowy. Spóźnione o jakieś dwa lata, bo mniej więcej dwa lata temu przypadkiem odkryłem powód powolności jednego z serwerów.
Zawsze (zawsze!) po instalacji systemu należy upewnić się, że wszystkie fizyczne systemy plików montowane są z parametrami
noatime,nodiratimealbo przynajmniejrelatime. Dla xfs dodatkowo pomożelogbufs=8.
Ku pamięci i takie tam. Wydrukować i oprawić w ramki albo więcej nie dziwić się, kiedy maszyna z minimalnym ruchem http doświadcza load na poziomie 5.
Update: okazuje się, że w sierpniu zeszłego roku podobny wątek pojawił się na kerneltrapie. Upewniłem się też (wczoraj zastanawialiśmy się nad tym z qwiatem w drodze na piwo, więc z dala od kerneli), że noatime dotyczy zarówno plików, jak katalogów, przez co podawanie dodatkowo nodiratime jest zbędne. Czas się odzwyczaić.


by opi
25 sie 2008 at 16:52
To sztuczka dla wszystkich systemów plików, czy tylko tych z journalingiem?
by Patrys
25 sie 2008 at 17:15
Dla wszystkich z fizycznymi urządzeniami (dla takiego procfs nie ma sensu).
relatime powoduje, że atime jest zapisywany tylko jeśli jest starszy od ctime albo mtime. noatime wyłącza go całkiem. atime to taka durnota odziedziczona po Uniksie i w implementacji jest jeszcze głupszy, niż windowsowy atrybut „archive”. Powoduje mianowicie zapis danych przy odczycie (taki wierszyk).
by mt3o
25 sie 2008 at 18:18
Także dla vfat i ntfs? O swap się już pytać nie będę ;)
atime, mtime i ctime to są daty dostępu, modyfikacji i utworzenia pliku, tak?
by Patrys
25 sie 2008 at 18:36
mt3o:
Tak, atime to czas ostatniego dostępu i tak, dotyczy to też systemów vfat. W przypadku ntfs nie wiem, dwa lata temu ntfs pod Linuksem nie obsługiwał w ogóle modyfikacji czasów w atrybutach plików. W przypadku vfat atime, mtime i ctime zapisywane są w tym samym polu (vfat nie powstał na potrzeby Uniksa i ma tylko jeden atrybut czasu).
Swap nie jest systemem plików sensu stricte, bo nie operuje na plikach :)
by wojtosz
26 sie 2008 at 18:27
jeśli już o systemach plików mowa: ext4 testował ktoś ?