microk8s: High CPU usage by gvfs-udisks2-vo which is caused by microk8s

Please run microk8s.inspect and attach the generated tarball to this issue. inspection-report-20190610_165704.tar.gz

We appreciate your feedback. Thank you for using microk8s. top shows:

 2293 khteh     20   0  270176  26568   7776 R  56.7   0.1 198:27.51 gvfs-udisks2-vo                                                                                                                               

udisksctl monitor shows it is mainly by microk8s. What happen?

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Reactions: 19
  • Comments: 33 (15 by maintainers)

Most upvoted comments

FYI I have this on a ubuntu 20.04 system with kubernetes installed using kubespray.

I did use microk8s at one point, but had already stopped it.

Interestingly if I run nautilus on this machine, it freezes. Same with all browser file save dialogs.

Running

systemctl stop --user gvfs-udisks2-volume-monitor

Fixes both the 100% CPU issue, and makes nautilus stop from freezing

This seems to help in reducing the CPU usage of gvfs-udisk2-volume-monitor:

sudo tee /etc/udev/rules.d/90-loopback.rules <<EOF
# hide loopback devices from udisks
SUBSYSTEM=="block", DEVPATH=="/devices/virtual/block/loop*", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
EOF

For me, the gvfs-udisk2-volume-monitor was constantly spiking to over 10% CPU consumption. After making the above change and rebooting, the spikes are 1-2% of CPU.

This solution was inspired by https://github.com/moby/moby/blob/b96a0909f0ebc683de817665ff090d57ced6f981/contrib/udev/80-docker.rules#L3

Same here to on Fedora 33… gvfs-udisks2-volume-monitor uses between 50 and 75% cpu constantly, and gsd-housekeeping is constantly between 25-50%

stopping monitor stopped it and its cpu usage, but I have no idea what side-effects that have?

I’m getting this issue when deploying Kubeflow, which has lots of pods that require storage. Since I’m not running the cluster full-time, I was able to work around this by running systemctl stop --user gvfs-udisks2-volume-monitor to disable the gvfs-udisks2-volume-monitor process.

Also, I tried adding the x-gvfs-hide option to all of the mounts, which didn’t seem to help. udisksctl monitor showed very few events (unlike before adding the option), but gvfs-udisks2-volume-monitor still ate up CPU. It’s possible that’s due to me remounting with the flag instead of mounting with the flag. Here’s what I ran to add the flag:

mount | grep /var/snap/microk8s | cut -d" " -f3 | xargs -I{} bash -c "echo {}; sudo mount -o remount,x-gvfs-hide {}"

I’ve been using this workaround successfully for years:

sudo tee /etc/udev/rules.d/90-loopback.rules <<EOF
# hide loopback devices from udisks
SUBSYSTEM=="block", DEVPATH=="/devices/virtual/block/loop*", ENV{UDISKS_PRESENTATION_HIDE}="1", ENV{UDISKS_IGNORE}="1"
EOF

Reboot to ensure that it takes effect.

I got here from searching “high cpu udisks2 ubuntu”. Although my problem is in another environment, maybe my research can help here (?)

I am running kubernetes installed with kubeadm, I’ve just had problems with high cpu caused by the package udisks2, which was installed as a recommend from https://packages.ubuntu.com/focal-updates/fwupd by running apt full-upgrade in Ubuntu 20.04. This has installed a daemon called udisks2, which costs me 1/4 of my cpu. Uninstalling udisks2 again solved my problem.

(Please feel free to hide this comment if this is not related or a kind of help to this issue)

can’t believe this issue is created in 2019 and still not solved. please anyone has found any robust solution please let me know . thanks .

Is there any progress here? It’s annoying seeing an entire core on my laptop stuck at 100% usage for hours on end and it creates a huge amount of waste heat and kills battery life if I don’t notice it.

I tried the fix but no effect 😦 gvfs-udisks2-vo CPU utilization still more than 30/40% from time to time…

It seems that the correct fix for this issue would be to make snap add x-gvfs-hide mount option to the loopback device mounts. I created https://github.com/snapcore/snapd/pull/10104 to snapd for adding this.