Kernel memory should be monitored while tuning to ensure a comfortable amount of free kernel address space. There is one example ( CySchubert) of ZFS running nicely on a laptop with 768 Megs of physical RAM with the following settings in /boot/nf: For example it is possible to set vm.kmem_size and vm.kmem_size_max to 512M, _max to 160M, keeping .size to half its default size of 10 Megs (setting it to 5 Megs can even achieve better stability, but this depends upon your workload). On memory constrained systems it is safer to use an arbitrarily low arc_max. Previously it exceeded arc_max ( _max) from time to time, but with 7.3 and 8-stable as of mid-January 2010 this is not the case anymore. If it requires more memory for ARC ZFS will allocate it. ZFS manages the ARC through a multi-threaded process. Some workloads need greatly reduced ARC size and the size of VDEV cache. A stable configuration with vm.kmem_size="1536M" has been reported using an unmodified 7.0-RELEASE kernel, relatively sparse drivers as required for the hardware and options KVA_PAGES=512. If you change KVA_PAGES and the system reboots (no panic) after running a while this may be because the address space for userland applications is too small now.įor *really* memory constrained systems it is also recommended to strip out as many unused drivers and options from the kernel (which will free a couple of MB of memory). those that rely on mapping data at a fixed address that is now in the kernel address space, or which require close to the full 3 GB of address space themselves) may no longer run. The trade-off is that user applications have less address space available, and some programs (e.g. By increasing KVA_PAGES you can allocate a larger proportion of the 4 GB address space to the kernel (2 GB in the above example), allowing more room to increase vm.kmem_size. To chose a good value for KVA_PAGES read the explanation in the sys/i386/conf/NOTES file.īy default the kernel receives 1 GB of the 4 GB of address space available on the i386 architecture, and this is used for all of the kernel address space needs, not just the kmem map. add the following line to your kernel configuration file to increase available space for vm.kmem_size beyond 1 GB: If you need to extend them beyond 512M, you need to recompile your kernel with increased KVA_PAGES option, e.g. Typically you need to increase vm.kmem_size_max and vm.kmem_size (with vm.kmem_size_max >= vm.kmem_size) to not get kernel panics (kmem too small).
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |