The most common cause of this effect is open files that have been deleted.
The kernel will only free disk blocks of the deleted file if it is not used during its deletion. Otherwise, it is delayed until the file is closed or the system reboots.
A common Unix-world trick to ensure that temporary files are missing is the following:
The process creates and opens a temporary file.
When you save an open file descriptor, the process shuts down (i.e. deletes) the file
A process reads and writes a file, usually with a file descriptor
The process closes the file descriptor when it is executed, and the kernel frees up space
If the process (or system) terminates unexpectedly, the temporary file has already been deleted and no cleanup is required.
As a bonus, deleting a file reduces the likelihood of name collisions when creating temporary files, and also provides an additional level of ambiguity regarding running processes - for any user except the root user.
This behavior ensures that processes should not deal with files that are suddenly pulled out from under their feet, and that processes should not consult with each other to delete a file. This is an unexpected behavior for those coming from Windows systems, though, since you are usually not allowed to delete the file that is being used.
The lsof command lsof when launched as a user, will show all open files and indicate deleted deleted files:
Stop and restart the guilty processes or just restart the server to solve this problem.
Deleted files can also be opened by the kernel if, for example, this is an image of a mounted file system. In this case, unmounting the file system or rebooting the server should do the trick.
In your case, judging by the size of the "missing" space, I would look for any links to the file that you used to configure VPS, for example. The Centos disk image that you deleted after installation.
source share