I am running FreeNAS 7 AMD64 with a ZFS pool. I have quite a bit of data to migrate to my NAS system. I have 4 2TB drives in a raidz1 ZFS configuration. While doing so, I am copying about 300GB of data from my Windows Vista PC to my NAS over CIFS/SMB. It will transfer about 10-20GB and the server will crash and reboot. This seems to be more replicable when I also upload a few GB from my Mac with AFP on the same ZFS Pool. I am not sure if this is a ZFS issue or an issue with sharing daemons. I am very *nix savvy but I am still fairly new to FreeBSD. I can do anything needed to help troubleshoot this issue as well, just let me know.
Try adding the following lines to /boot/loader.conf (or /cf/boot/loader.conf for embedded):
vm.kmem_size_max="1024M"
vm.kmem_size="1024M"
vfs.zfs.arc_max="100M"
As per http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=97&t=5100 and http://sourceforge.net/apps/phpbb/freenas/viewtopic.php?f=92&t=1323
My system isn't having memory issues. At least according to memory usage statistics (which i conduct from the CLI for more accuracy).
I have tested the settings you recommended, although this horribly throttled the network throughput (as ARC needs flushed more often).
For fun and the sake of proving this is not a memory related issue, I have increased all values to 1024M, and turned off Swap. This forces the system to use all available memory. But due to how ZFS and ARC are written, ARC releases enough memory to keep the system up and stable.
Turning Swap back on ARC immediately resumes control of its allocated 1024M and pushes kernel, daemons, etc... on to Swap.
With these tests alone, this shows that logically memory and its allocation could not be causing a KP. Your suggestions are under system defaults. Mine are way over system defaults. It is also my understanding that the FreeBSD 7.2 kernel has much more advanced memory allocation systems than previous ones, and the forum you point out specifically proves in the cases of those having issues in that thread, is not a memory issue. However, I have tested my hardware. All 4 drives have been tested with advanced hard drive testers and passed fine.
So these tests were done with AFP. Now lets try CIFS.
With my very large settings, I am unable to get the system to crash. I am using 100% RAM and 8M swap at this point. Turning swap off, readjusts how often ARC flushes the cash, and the system remains stable.
Suggested settings severely hinders network throughput again. System however stable still.
System defaults. The system very quickly crashes.
As the kmem values were the same in the other tests (except system defaults) lets use system defaults for the ARC cache and force the kmem size to 1024M.
This actually yields very good performance. Much better than the default. The default ARC max is about 800M. This uses about 85% RAM and 0M swap.
So I am wondering if there is an issue with the kernel and how it defaults its memory size allocations? This is obviously not an issue with the ARC cache size, but the kernel memory sizes.
I guess the next question would be, is this a coding issue with the kernel or a setting that should be more intelligently calculated by FreeNAS in a script some where?