As operações de instantâneos são uma função do número de instantâneos que você tem, RAM, desempenho de disco e espaço em disco. Este seria um problema geral do ZFS , não algo exclusivo da variante do Linux.
A melhor pergunta é: Por que você tem 1797 instantâneos de um zvol? Isso definitivamente é mais do que o recomendado e me faz pensar no que mais está acontecendo no sistema. / p>
As pessoas dizem que "os instantâneos do ZFS são gratuitos", mas isso nem sempre é verdade.
Embora os snaps do ZFS não tenham um impacto no desempenho produção , o número alto que você precisa claramente requer que os acessos ao disco enumerem.
Disk access time > RAM access time
, daí a diferença de ordem de magnitude.
strace
output. Observe o tempo por syscall e imagine como ele seria escalonado com o número de snapshots em seu sistema de arquivos.
# strace -c ls /ppro/.zfs/snapshot
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
0.00 0.000000 0 10 read
0.00 0.000000 0 17 write
0.00 0.000000 0 12 open
0.00 0.000000 0 14 close
0.00 0.000000 0 1 stat
0.00 0.000000 0 12 fstat
0.00 0.000000 0 28 mmap
0.00 0.000000 0 16 mprotect
0.00 0.000000 0 3 munmap
0.00 0.000000 0 3 brk
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 2 ioctl
0.00 0.000000 0 1 1 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 fcntl
0.00 0.000000 0 2 getdents
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 1 statfs
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 2 1 futex
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00 0.000000 133 2 total
versus
# strace -c zfs list -t snapshot
% time seconds usecs/call calls errors syscall
------ ----------- ----------- --------- --------- ----------------
100.00 0.003637 60 61 7 ioctl
0.00 0.000000 0 12 read
0.00 0.000000 0 50 write
0.00 0.000000 0 19 open
0.00 0.000000 0 19 close
0.00 0.000000 0 15 fstat
0.00 0.000000 0 37 mmap
0.00 0.000000 0 19 mprotect
0.00 0.000000 0 1 munmap
0.00 0.000000 0 4 brk
0.00 0.000000 0 2 rt_sigaction
0.00 0.000000 0 1 rt_sigprocmask
0.00 0.000000 0 3 1 access
0.00 0.000000 0 1 execve
0.00 0.000000 0 1 getrlimit
0.00 0.000000 0 1 arch_prctl
0.00 0.000000 0 2 1 futex
0.00 0.000000 0 1 set_tid_address
0.00 0.000000 0 1 set_robust_list
------ ----------- ----------- --------- --------- ----------------
100.00 0.003637 250 9 total