ZIL und L2ARC

"Wired" ist aller Speicher, der vom Kernel allokiert und als nicht nicht ausswapbar markiert wird. Im Sinne von "wired" == "fest mit den physischen Adressen verdrahtet". ZFS ist zwar die größte Sau im Wired-Stall, aber diverse andere Kernelsubsysteme und Treiber da sind auch gut im Rennen. Wie viel insgesamt als "wired" belegt wird, bestimmt sich aus diversen Faktoren. Auf einem 4GB PC Engines APU ohne ZFS sieht es z.B. so aus:
Code:
Mem: 34M Active, 1106M Inact, 606M Wired, 1988K Cache, 414M Buf, 2176M Free
Swap: 4096M Total, 574M Used, 3522M Free, 14% Inuse

ZFS braucht so viel, weil es extrem aggressiv ist. Alles, was er an RAM erstmal unter seiner Fuchtel hat, gibt er nur unwillig wieder frei. Zwar gibt es mit "Back Pressuring" einen Mechanismus, der bei RAM-Knappheit den ARC abräumt, er ist allerdings relativ träge und in einigen Situationen sogar schlicht zu langsam. Erschwerend kommt dazu, dass FreeBSDs VM-Algorithmen einfach davon ausgehen, dass eine Swap vorhanden ist. Ohne Swap funktioniert das System zwar, aber in Situationen von knappen RAM können seltsame Dinge passieren. In deinem Fall würde ich erst einmal probieren, den ARC per vfs.zfs.arc_max="5G" in der /boot/loader.conf auf knapp Zweidrittel deines RAMs zu begrenzen. Das ist generell eine gute Idee und kann schon einige Probleme verhindern.
 
Hallo,

vielleicht ein wenig "off-topic" - aber ich habe relativ gute Ergebnisse beim syncronisieren (das bedeutet: backup machen) von 2 Rechnern per rsync. Nutze auf beiden Rechnern ZFS (raidz1) unter FreeBSD 10.0 und ich habe die Grösse des ARC auf 2 GB begrenzt. Ich bekomme bis ca. 90 MB/sec. Transferrate, dass halte ich in einem GBit Ethernet für gut. Das kopieren einer 1 GB grossen Datei lokal geht in Sekunden... Selbst im produktiven Einatz halte ich das für akzeptabel ;-)

Viele Grüße, Norbert
 
Zurück
Oben