vm.kmem_size_max が大きすぎても ZFS が動かない2017年12月21日 13時05分20秒

vm.kmem_size_max を大きくしすぎても ZFS が動かないようだ。メモリが 2GB の古い機種の /boot/loader.conf で
vm.kmem_size_max="1024m"
と設定してた。

時おり、以下の様なエラーを出して、操作不能になっていた。この状態になると、ファイルシステム自体にはダメージは無いが、システムの状態がおかしくなり再起動が必要になる。

taskqueue_start_threads: kthread_add(zio_free_issue_6): error 12vm_thread_new: kstack allocation failed
taskqueue_start_threads: kthread_add(zio_free_issue_7): error 12vm_thread_new: kstack allocation failed
kthread_add(zio_free_intr): error 12vm_thread_new: kstack allocation failed
kthread_add(zio_claim_issue): error 12vm_thread_new: kstack allocation failed
kthread_add(zio_claim_intr): error 12vm_thread_new: kstack allocation failed
kthread_add(zio_ioctl_issue): error 12vm_thread_new: kstack allocation failed
taskqueue_start_threads: kthread_add(zio_ioctl_intr): error 12vm_thread_new: kstack allocation failed
そこで、/boot/loader.conf でメモリの割り当てを半分にしてみた。
vm.kmem_size_max="512m"
この後は、もっとたくさんの zpool や zfs を扱える様になって、以前の様に、操作に失敗する事は無くなったようだ。

ただし、以前は 300MB まで増えていた ARC キャッシュが 50MB 前後の利用量に落されているようだ。