You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository has been archived by the owner on May 14, 2020. It is now read-only.
I installed microk8s and local-zfs-provisioner on a small low-power cluster (2 x NUC DN2820: processor is Celeron N2820, 2 cores @ 2.13GHz). These boxes are very lightly loaded with lxd containers which are mostly idle. microk8s runs directly on the metal.
I was surprised to see top showing local-zfs-provisioner as consistently the top consumer of CPU, using a continuous 10-15%:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
28251 root 20 0 133448 28316 18812 S 15.1 0.4 171:40.75 local-zfs-provi
21261 root 20 0 496400 332236 55272 S 6.2 4.1 187:06.28 kube-apiserver
and I'm hard pushed to explain why.
strace shows multiple threads with wakeups every 20 microseconds (tv_nsec=20000):
That part looks reasonable, but the background chatter seems excessive. I have many other golang processes running on these same boxes (including prometheus and its various exporters) and they don't generate any noticeable background CPU load. However I don't know what version of golang was used to build local-zfs-provisioner, and maybe there have been improvements in the runtime.
Otherwise, the problem may be buried somewhere in sigs.k8s.io/sig-storage-lib-external-provisioner/controller - but since that's more or less deprecated in favour of CSI, there may not be much help forthcoming.
For now I've brought my load back down by removing local-zfs-provisioner:
I'm aware of this, also see this on my boxes.
I can not think of anything in my code causing this, almost certainly is caused by something in sigs.k8s.io/sig-storage-lib-external-provisioner. But didn't have time to pin-point it.
I installed microk8s and local-zfs-provisioner on a small low-power cluster (2 x NUC DN2820: processor is Celeron N2820, 2 cores @ 2.13GHz). These boxes are very lightly loaded with lxd containers which are mostly idle. microk8s runs directly on the metal.
I was surprised to see
top
showing local-zfs-provisioner as consistently the top consumer of CPU, using a continuous 10-15%:and I'm hard pushed to explain why.
strace
shows multiple threads with wakeups every 20 microseconds (tv_nsec=20000
):If I filter out all that background, all that's left is a small amount of communication every couple of seconds (possibly to API?):
That part looks reasonable, but the background chatter seems excessive. I have many other golang processes running on these same boxes (including prometheus and its various exporters) and they don't generate any noticeable background CPU load. However I don't know what version of golang was used to build local-zfs-provisioner, and maybe there have been improvements in the runtime.
Otherwise, the problem may be buried somewhere in
sigs.k8s.io/sig-storage-lib-external-provisioner/controller
- but since that's more or less deprecated in favour of CSI, there may not be much help forthcoming.For now I've brought my load back down by removing local-zfs-provisioner:
The text was updated successfully, but these errors were encountered: