6.4.6 How to determine how much space or inode is occupied on the server
Disk space is a critical resource for any server. It determines how much data Your system can store and process. Effective disk space management is key to ensuring uninterrupted server operation.
In Linux systems, disk space is allocated not only by the volume of data but also by the number of files. Each file or directory is associated with a unique identifier called an inode (index node). An inode contains metadata about the file, such as access rights, owner, size, and location on the disk.
It’s important to note: running out of disk space or inodes can have serious consequences for the functioning of Your server, websites, and email.
This can lead to the following consequences:
-
Website and email malfunction: when disk space runs out, the site may stop working as it’s impossible to write new data or logs.
-
Database problems: databases may stop updating or fail to work altogether.
-
Service failures: system services may cease to function due to the inability to write logs or temporary files.
-
Inability to backup: if there’s no free space on the disk, creating backups becomes impossible.
-
System slowdown: even if the system is still running, lack of free space can significantly reduce its performance. Or the server may hang during data write attempts.
Regular monitoring and timely management of disk space are critical to ensuring the stable operation of Your server and websites.
Commands for Disk Space Analysis
For users with access to the ISPManager control panel, there’s a simple way to check disk space usage without using the command line. However, it’s less informative and won’t provide You with as much information as You can get when checking via SSH terminal.
Detailed instructions on checking and managing disk quotas through the ISPManager panel can be found in our article.
Important: most of the commands listed require root level administrator access.
Checking Used Space in Percentages
To check the amount of used space in percentages, connect to the server using SSH and execute the following command:
- df -h
This command displays the total volume of each file system partition, the amount of used and free space, as well as the percentage of used space. All information is presented in human-readable units (KB
, MB
, GB
), making it easy to assess the state of the disk system.
root@hostname ~ # df -h
Filesystem Size Used Avail Use% Mounted on
udev 956M 0 956M 0% /dev
tmpfs 198M 1.8M 196M 1% /run
/dev/vda1 40G 11G 29G 28% /
tmpfs 986M 0 986M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 986M 0 986M 0% /sys/fs/cgroup
Analyzing Directory Sizes
To see how much space folders in the root directory occupy, use the command:
- du --si --max-depth=1
This command shows the size of each subdirectory based on your user’s access level.
If necessary, you can add the symbol /
to the end of the command, thereby all information on the size will be output from the root folder of the server.
- du --si --max-depth=1 /
Additionally, you can specify the path to the required directory if you need to check the location of a specific user or site:
- du --si --max-depth=1 /var/www/user/data/www/example.com
When forming the path, You need to specify Your user’s login (user
) and the site name (example.com
). You can modify the path, leaving, for example, /var/www/user/data/
, thus You’ll find out how much information is occupied by this particular user.
Finding the Largest Files
To find the 10 largest files in the system:
- find / -type f -printf '%s %p\n' | sort -nr | head -10
Cleaning Package Manager Cache
For Debian/Ubuntu systems:
- sudo apt-get clean
For CentOS/AlmaLinux/RockyLinux systems:
- sudo yum clean all
Deleting Old Log Files
To delete log files older than 7 days:
- find /var/log -type f -mtime +7 -name "*.log" -delete
Commands for Checking Inodes
Checking Inode Usage
To check the percentage of used inodes, execute:
- df -i
This command provides much more information than just checking used inodes
. It displays the total number of inodes
on the file system, the number of used and free inodes
, as well as the percentage of used ones. This allows You to get a complete picture of the file system state.
root@hostname ~ # df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
udev 244521 395 244126 1% /dev
tmpfs 252323 684 251639 1% /run
/dev/vda1 2621440 242234 2379206 10% /
Counting Inodes in a Specific Directory
To count the total number of inodes
in a specified directory and its subdirectories:
- find /var/www/user/data -type f | wc -l
You can modify this command by adding the following arguments:
- -user
user
- will output the number of inodes belonging to the specified user, in our example, the user login isusername
. You’ll need to substitute Your user. - -group
group
- will output the number of inodes belonging to the specified group.
For example:
- find /var/www/user/data -type f -user username | wc -l
Finding Directories with the Most Files
To find directories containing the most inodes
, use:
- find / -xdev -printf '%h\n' | sort | uniq -c | sort -k 1 -n
Additionally: based on the information obtained, You can take the following measures to optimize disk space usage.
-
Deleting unnecessary files: regularly clean the system of temporary files, old logs, and unused data.
-
Archiving old data: compress and move rarely used files to separate media to free up space on the main disk.
-
Using symbolic links: create symbolic links instead of duplicating files to save both disk space and inodes.
-
Setting quotas: set limits on disk space usage for users and groups to prevent excessive resource consumption.