I have ELK stack on a dedicated i7 server which has 100% memory usage and swap on ZFS (mounted with "zfs create -V 64gb -o org.freebsd:swap=on -o checksum=off -o compression=off -o dedup=off -o sync=disabled -o primarycache=none zroot/swap swapon /dev/zvol/zroot/swap"). With some extreme load cases, my whole machine crashes with dump like: ``` [109840] Fatal trap 12: page fault while in kernel mode [109840] cpuid = 2; apic id = 02 [109840] fault virtual address = 0xde20140520 [109840] fault code = supervisor write data, page not present [109840] instruction pointer = 0x20:0xffffffff811daef7 [109840] stack pointer = 0x28:0xfffffe00005f1850 [109840] frame pointer = 0x28:0xfffffe00005f1870 [109840] code segment = base rx0, limit 0xfffff, type 0x1b [109840] = DPL 0, pres 1, long 1, def32 0, gran 1 [109840] processor eflags = interrupt enabled, resume, IOPL = 0 [109840] current process = 16 (solthread 0xfffffff) [109840] trap number = 12 [109840] panic: page fault [109840] cpuid = 2 [109840] time = 1611201271 [109840] version = FreeBSD 12.2-RELEASE-HBSD VerKnowSys [109840] KDB: stack backtrace: [109840] #0 0xffffffff80daf88d at kdb_backtrace+0x7d [109840] #1 0xffffffff80d3e98e at vpanic+0x23e [109840] #2 0xffffffff80d3e750 at vpanic+0 [109840] #3 0xffffffff813adce6 at trap_fatal+0x636 [109840] #4 0xffffffff813adf7f at trap_pfault+0x1af [109840] #5 0xffffffff813acdfa at trap+0x7ba [109840] #6 0xffffffff813ae478 at trap_check+0x48 [109840] #7 0xffffffff8137a4d8 at calltrap+0x8 [109840] #8 0xffffffff811dfa82 at bucket_cache_drain+0x52 [109840] #9 0xffffffff811d64cf at zone_drain_wait+0x12f [109840] #10 0xffffffff811d639a at zone_drain+0x1a [109840] #11 0xffffffff826a9ba8 at arc_kmem_reap_soon+0x88 [109840] #12 0xffffffff826a608b at arc_reap_cb+0xb [109840] #13 0xffffffff82761eb1 at zthr_procedure+0xc1 [109840] #14 0xffffffff80cd0c69 at fork_exit+0x179 [109840] #15 0xffffffff8137b50e at fork_trampoline+0xe ```
The crash is in UMA code, it does not look directly related to ZFS. Also, what is 12.2-RELEASE-HBSD ?
> on ZFS See also: <https://github.com/openzfs/zfs/issues/7734> >> Swap deadlock in 0.7.9 · Issue #7734 · openzfs/zfs
(In reply to Graham Perrin from comment #2) … sorry, I overlooked comment 1. My bad.
The (long and) short of it is: writing to ZFS can require heap allocations making ZVOLs unsuitable as swap devices (swapping to normal files on ZFS mounts would be even worse). The only reliable solution is to use something simpler as swap space e.g. a gmirror+geli partition. I know this sucks if you have no space left on your disks.