Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 12 Oct 2008 01:43:36 -0700
From:      Jeremy Chadwick <koitsu@FreeBSD.org>
To:        Nate Eldredge <neldredge@math.ucsd.edu>
Cc:        freebsd-hackers@freebsd.org, Pegasus Mc Cleaft <ken@mthelicon.com>
Subject:   Re: ZFS boot
Message-ID:  <20081012084336.GA84786@icarus.home.lan>
In-Reply-To: <Pine.GSO.4.64.0810111615020.16737@zeno.ucsd.edu>
References:  <E1KoeVm-000ELP-4b@cs1.cs.huji.ac.il> <b269bc570810111337l4a8f9fc9yfc6f5959d7c971fd@mail.gmail.com> <Pine.GSO.4.64.0810111349540.16737@zeno.ucsd.edu> <200810112330.53214.ken@mthelicon.com> <Pine.GSO.4.64.0810111615020.16737@zeno.ucsd.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, Oct 11, 2008 at 04:21:55PM -0700, Nate Eldredge wrote:
> On Sat, 11 Oct 2008, Pegasus Mc Cleaft wrote:
>
>>> FWIW, my system is amd64 with 1 G of memory, which the page implies is
>>> insufficient.  Is it really?
>>
>> 	This may be purely subjective, as I have never bench marked the speeds, but
>> when I was first testing zfs on a i386 machine with 1gig ram, I thought the
>> performance was mediocre. However, when I loaded the system on a quad core -
>> core2 with 8 gigs ram, I was quite impressed. I put localized changes in my
>> /boot/loader.conf to give the kernel more breathing room and disabled the
>> prefetch for zfs.
>>
>> #more loader.conf
>> vm.kmem_size_max="1073741824"
>> vm.kmem_size="1073741824"
>> vfs.zfs.prefetch_disable=1
>
> I was somewhat confused by the suggestions on the wiki.  Do the kmem_size 
> sysctls affect the allocation of *memory* or of *address space*?

The Wiki is somewhat vague and doesn't give you all the knowledge you
need.

The kmem_* sysctls do not define pre-allocated amounts.  They define the
amount of memory which can be used by the kernel for allocation.

I strongly advocate tuning two other sysctls, which can help greatly
in ensuring no system lock-ups and no kmem exhaustion panics:

vfs.zfs.arc_min
vfs.zfs.arc_max

The following values are what I use, but others have reported better
performance with arc_max set to 128M:

vfs.zfs.arc_min="16M"
vfs.zfs.arc_max="64M"

> It seems a bit much to reserve 1 G of memory solely for the use of the
> kernel, expecially in my case when that's all I have :)  But on amd64, 
> it's welcome to have terabytes of address space if it will help.

ZFS is a memory hog, period.  That's just the nature of the beast.
You probably should not be using it on a system with 1GB.  I'll remind
you that memory right now is *incredibly* cheap; you can get 4GB of
brand-name lifetime-warranty RAM for around US$40-50.

Secondly, with regards to amd64:

RELENG_6 and RELENG_7 amd64 cannot handle more than 2GB of kmem.  Yes,
you read that correct; it's not a typo.  It's an implementation issue
which cannot be easily solved on those releases.  CURRENT can address up
to 512GB.  I've fully documented this on my Wiki, see section Kernel.

http://wiki.freebsd.org/JeremyChadwick/Commonly_reported_issues

-- 
| Jeremy Chadwick                                jdc at parodius.com |
| Parodius Networking                       http://www.parodius.com/ |
| UNIX Systems Administrator                  Mountain View, CA, USA |
| Making life hard for others since 1977.              PGP: 4BD6C0CB |




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081012084336.GA84786>