Technical

Very high pvestatd CPU usage: fix it by checking the storage plugin

Very high pvestatd CPU usage: fix it by checking the storage plugin

Very high pvestatd CPU usage is almost always a storage plugin blocking the daemon. pvestatd polls every storage you’ve configured, and if one of them hangs, the daemon spins. Here’s how to find the culprit and fix it.

High-angle view of a modern cell tower with technology components against a blue sky with clouds.

What pvestatd does

pvestatd is the Proxmox VE daemon that collects status from your nodes, VMs, and storage. It runs every 10 seconds by default. If a storage plugin takes too long to respond, pvestatd waits and the CPU usage climbs. The daemon isn’t broken; it’s stuck waiting on something you told it to check.

Find the blocking storage

Check the pvestatd log first. Run this on the node with high CPU:

journalctl -u pvestatd -f

Look for repeated messages about a specific storage. You’ll see lines like storage 'mystorage' is not online or timeouts. That’s your culprit.

If the log doesn’t show anything obvious, check your storage configuration:

cat /etc/pve/storage.cfg

Look for entries that point to unreachable NFS shares, iSCSI targets, or CIFS mounts. Any of those can block pvestatd. If you have a TrueNAS box that’s offline or an NFS share that’s slow, that’s likely it.

From above of orange usb to micro usb cable twisted into ring placed on black board

Fix the storage issue

Once you’ve found the bad storage, you have two options. Fix the underlying problem (bring the share back online, fix the network, whatever) or remove the storage from Proxmox if you don’t need it anymore. Removing it is clean:

pvesm remove mystorage

Replace mystorage with the actual storage ID. If you need the storage but it’s flaky, consider increasing the timeout or using a more reliable protocol. NFS is notorious for hanging when the server disappears.

Restart pvestatd

After fixing the storage, restart the daemon:

systemctl restart pvestatd

Then watch the CPU usage for a few minutes. It should drop back to near zero. If it doesn’t, you might have another blocking storage or a different issue.

My take

Most of the forum advice about pvestatd CPU is garbage. People say adjust the update interval or disable the daemon entirely. That’s treating the symptom, not the cause. The daemon is fine; your storage config is the problem. Fix that and you don’t need to cripple your monitoring. If you want to keep an eye on resource usage, I built a mini resource screen for Proxmox that shows CPU, memory, and storage at a glance. It’s handy for spotting this kind of thing before it gets bad.

Leave a comment

Comments are reviewed before they appear. Your email is never published.