View Single Post
  #4   (View Single Post)  
Old 24th October 2008
phoenix's Avatar
phoenix phoenix is offline
Risen from the ashes
 
Join Date: May 2008
Posts: 696
Default

The big difference is in the way the memory allocations work. I don't know the specifics on the Solaris side of things, but on the FreeBSD side, the ZFS ARC uses kernel memory (compared to the unified buffer cache that the rest of the OS uses for accessing UFS, FAT, ISO9660, etc, which is non-kernel memory). There's a finite amount of kernel memory on 32-bit systems (25% of RAM up to 1 GB by default, max 2 GB).

So, if you don't tune the kernel memory and ZFS ARC settings on 32-bit systems, then ZFS will try to use all your RAM for the ARC, and cause kernel panics ("kmem_map too small" errors).

Things are better on the 64-bit side of things, as there aren't the same limitations on kernel memory. FreeBSD 7.x still has a 2 GB kmem max size (actually about 1596 MB in practise), but FreeBSD 8.x will have a 512 GB max. There are quite a few updates and fixes for ZFS coming with FreeBSD 7.1. And FreeBSD 8.0 will have ZFS version 11, with a bunch more features, better performance, and more stability.

So give it time. It's not like ZFS appeared in Solaris working perfectly from the get-go. They've had 10+ years to get things to this point. FreeBSD has had less than 2.
__________________
Freddie

Help for FreeBSD: Handbook, FAQ, man pages, mailing lists.
Reply With Quote