Most VPS platforms, Ucartz included, use thin-provisioned virtual disks. When you delete a file inside your VPS, your operating system marks that space free, but the host doesn’t automatically get that space back unless your disk supports TRIM/discard and you run it. Run fstrim (Linux) or Optimize Drives (Windows) periodically, and ask your host to confirm discard is enabled on your plan.
What’s actually happening
Your VPS’s disk is a virtual disk image file sitting on the host’s physical storage. The image file starts small and grows as you write data. That’s normal thin provisioning, and it’s how every KVM, Xen or VMware host manages disk space efficiently, since most customers never use their full allocation.
The part people don’t expect: when you delete a 10GB file inside your VPS, your filesystem (ext4, XFS, NTFS) marks those blocks as free inside the VM. But the image file on the host doesn’t shrink. It keeps holding onto those blocks, because nothing told the host they were free. From the host’s point of view, every byte you ever wrote is still “in use”, even if you deleted it ten minutes later.
This is why you can delete 50GB off your VPS and your hosting panel still shows the same disk usage. It isn’t a bug or your provider inflating numbers. It’s how thin-provisioned disks work by default.
How the space comes back: discard and fstrim
The fix is TRIM, called discard on Linux, or “Optimize Drives” in Windows. TRIM tells the underlying storage “these blocks are free, you can reclaim them.” For a VPS, that signal has to pass through two layers: your guest OS has to send it, and your VPS’s virtual disk has to be configured to pass it through to the host.
On a modern Linux VPS, check it’s available:
lsblk --discard
If DISC-GRAN and DISC-MAX show non-zero values, discard is available on your disk. Then run:
fstrim -av
This walks every mounted filesystem and tells the host which blocks are genuinely free. Run it manually any time, or enable the fstrim.timer systemd unit most distributions ship, which runs it weekly:
systemctl enable --now fstrim.timer
On Windows Server, right-click your drive in File Explorer, Properties, Tools, Optimize, and run Optimize on your volumes (Windows does this automatically on SSD-backed volumes by default, but it’s worth confirming after a big cleanup).
What if trim doesn’t shrink the file?
If your VPS has never had discard enabled, deleted space can pile up for a long time before you ever run trim. The first trim recovers everything it can, but very old wasted space sometimes needs a one-time, deeper pass. If you’re not seeing the improvement you expect after fstrim -av, it’s worth asking your provider to check whether discard is actually enabled on your specific virtual disk and, if not, whether an offline compaction is possible.
What we do at Ucartz
We run KVM with Virtualizor across our VPS fleet. As part of routine capacity work, we check for exactly this: virtual disks that have grown well beyond what customers actually use, because trim was never run. Where we find it on our own side, we fix it. On the customer side, running fstrim (or enabling the weekly timer) is the single easiest thing you can do to keep your own VPS lean, and it costs nothing.
If you manage a Linux VPS anywhere, not just with us, and disk usage has been climbing in a way that doesn’t match what you actually have stored, this is almost always the reason. Check discard support, run fstrim -av, and enable the weekly timer so you never have to think about it again.
Need more headroom on your VPS? Compare our KVM VPS plans.