Re: Stabilität zfs

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Fri, 18 Jan 2008 20:01:06 +0100

On Fri, Jan 18, 2008 at 05:45:56PM +0100, Axel S. Gruner wrote:
> Hallo,
>
> Am 18.01.2008 um 13:57 schrieb Michael Gusek:
>
> >Bernd Walter schrieb:
> >>On Thu, Jan 17, 2008 at 12:30:54PM +0100, Michael Gusek wrote:
> >>
> >>>Hallo !
> >>>
> >>>Ich hab hier zwei 7.0-PRERELEASE FreeBSD Server mit cvs-Stand vom
> >>>Montag 14.1.2007 am Laufen. Beide Server haben 4 Sata-Festplatten
> >>>die mittels zfs ein raidz bilden. Wenn ich nun viel IO-Last
> >>>produziere, z.B. complieren eines grösseren Software-Paket, z.B.
> >>>KDE oder manchmal auch die Welt bekomme ich eine Kernel-Panic:
> >>>
> >>>panic: kmen_malloc(65536): kmem_map too small: 278609920 total
> >>>allocated
> >>>
> >>>Als Kernel kommt der GENERIC zum Einsatz, einzigste Änderung ist
> >>>SCHED_ULE. Ein Server hat 2 GB RAM, der andere 1GB. Bei Bedarf
> >>>liefer ich ein dmesg nach.
> >>>
> >>>Was ist zu tun, damit beide ohne Panic laufen ?
> >>>
> >>
> >>kmem vergrössern und/oder den Bedarf reduzieren.
> >>Ist doch eigentlich eine logisch Schlußfolgerung aus obiger Meldung,
> >>oder?
> >>
> >>Für den Anfang solltest du sowas in deiner /boot/loader.conf
> >>schreiben:
> >>vm.kmem_size="419430400"
> >>Der jeweils sinnvolle Wert hängt von deinen Anforderungen ab.
> >>Bei i386 musst du ab einem gewissen Punkt auch noch den KVA Bereich
> >>vergrößern.
> >>Mitunter musst du ZFS auch im Bedarf runterstufen, weil du dein RAM
> >>z.B. eher für andere Dinge brauchst.
> >>
> >>
> >Hi Bernd !
> >
> >Ich hab jetzt mal kmem vergrössert:
> >
> >sysctl vm.kmem_size
> >vm.kmem_size: 419430400
> >
> >Trotzdem bekomm ich immernoch die Panic:
> >panic: kmem_malloc(131072): kmem_map too small: 333611008 total
> >allocated
> >
> >Dabei ist doch kmem grösser als er oben anmeckert. Das versteh ich
> >nicht.
>
> ich habe auf einem 2GB i386 Server folgendes in /boot/loader.conf:
>
> vm.kmem_size=1073741824
> vm.kmem_size_max=1073741824

Auf einem i386 hast du default nicht so viel KVA, als dass du so
viel kmem configurieren könntest.
Damit alleine wird es früher oder später woanders Ärger geben.
Du musst Im Kernel "options KVA_PAGES=384" für 1,5G KVA setzen.
Das geht dann natürlich im Gegenzug vom Userland Adressraum ab.
Und auf der 1GB RAM Maschine vom Michael ist es ohnehin unmöglich so
viel kmem zu nutzen - ist ja schließlich physikalisch nicht vorhanden.
Würde also nur auf einem seiner beiden Rechner helfen.

> vfs.zfs.prefetch_disable=1

Der mag helfen, aber mitunter muss auch der arc runter gesetzt
werden.
Auf meinem heimischen ZFS Server mit lediglich 386MB RAM habe
ich zusätzlich noch:
vfs.zfs.arc_min=16777216
vfs.zfs.arc_max=33554432
OS ist aber schon ein paar Tage älter - Pawel hat seit dem das
Autotuning von ZFS verbessert, aber der Automatismus kann nicht
wissen, was sonst noch kmem braucht.

> Ebenso ist dieser Patch installiert:
> http://people.freebsd.org/~pjd/patches/vm_kern.c.2.patch
>
> Seitdem ich den Patch habe, rennt ein rsync von einigen GB in der
> Nacht ohne Probleme durch.

Der Patch ist nur ein Workaround, um die Folgen abzuwenden.
Es ändert nichts am Problem, das kmem nicht ausreicht.
Und wenn ich das richtig verstanden habe, dann kann der Patch den
Panic auch nicht immer verhindern - man sollte also so oder so
dafür sorgen, dass das Problem selber beseitigt ist.

-- 
B.Walter                http://www.bwct.de      http://www.fizon.de
bernd(at)bwct.de           info(at)bwct.de            support(at)fizon.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Fri 18 Jan 2008 - 20:01:16 CET

search this site