ZFS exhausts kernel memory just by importing zpools
Nagy, Attila
bra at fsn.hu
Tue Jul 2 14:58:43 UTC 2019
Hi,
Running latest stable/12 on amd64 with 64 GiB memory on a machine with
44 4T disks. Each disks have its own zpool on it (because I solve the
redundancy between machines and not locally with ZFS).
One example zpool holds 2.2 TiB of data (according to df) and have
around 75 million files in hashed directories, this is the typical usage
on them.
When I import these zpools, top says around 50 GiB wired memory (ARC is
minimal, files weren't yet touched) and after I start to use (heavy
reads/writes) the pools, the free memory quickly disappears (ARC grows)
until all memory is gone and the machine starts to kill processes, ends
up in a deadlock, where nothing helps.
If I import the pools one by one, each of them adds around 1-1.5 GiB of
wired memory.
Top shows this, right after it came to a halt and nothing else works (I
can't log in even on the console):
last pid: 61878; load averages: 5.05, 4.42, 2.50 up 0+01:07:23
15:45:17
171 processes: 1 running, 162 sleeping, 1 stopped, 1 zombie, 6 waiting
CPU: 0.0% user, 0.0% nice, 0.2% system, 0.0% interrupt, 99.8% idle
Mem: 7716K Active, 8192 Inact, 84K Laundry, 57G Wired, 180M Buf, 14M Free
ARC: 21G Total, 10G MFU, 4812M MRU, 4922M Anon, 301M Header, 828M Other
5739M Compressed, 13G Uncompressed, 2.35:1 Ratio
Swap:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU
COMMAND
61412 root 1 20 0 14M 3904K CPU14 14 0:06 1.55% top
57569 redis 57 20 0 1272M 64M uwait 22 4:28 0.24% consul
5574 root 1 20 0 13M 3440K nanslp 10 0:02 0.05% gstat
5557 root 1 20 0 20M 7808K select 20 0:00 0.01% sshd
5511 root 1 20 0 20M 7808K select 4 0:01 0.01% sshd
4955 root 1 20 0 10M 1832K select 9 0:00 0.01%
supervis
5082 root 1 20 0 25M 14M select 0 0:00 0.00% perl
4657 _pflogd 1 20 0 12M 2424K bpf 1 0:00 0.00% pflogd
5059 elasticsea 2 20 -20 6983M 385M STOP 5 1:29 0.00% java
61669 root 1 26 0 23M 0 pfault 4 0:14 0.00%
<python3
61624 root 1 20 -20 24M 14M buf_ha 9 0:09 0.00%
python3.
61626 root 1 20 -20 23M 16K pfault 0 0:08 0.00%
python3.
61651 root 1 20 -20 23M 14M buf_ha 10 0:08 0.00%
python3.
61668 root 1 20 -20 23M 13M buf_ha 20 0:08 0.00%
python3.
I've already tried to shrink ARC and vm.kmem_size without too much success.
Any ideas what causes this?
More information about the freebsd-fs
mailing list