Find areas of disk usage with SSH
The first step in investigating a disk usage issue is to find where the content is being consumed. This will allow you to remove unnecessary content (such as old backups) and make changes to prevent the issue from recurring. If you’re comfortable using SSH on your wordpress hosting server, you can find large files/directories and remove them over the command line.
For an overview of disk usage on the server, use the command df -h. In the example, you can see that 35G of our 40G server is in use.
[root@server ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 909M 0 909M 0% /dev
tmpfs 919M 0 919M 0% /dev/shm
tmpfs 919M 17M 903M 2% /run
tmpfs 919M 0 919M 0% /sys/fs/cgroup
/dev/sda1 40G 35G 5.7G 86% /
/dev/loop0 1.8G 2.9M 1.7G 1% /tmp
tmpfs 184M 0 184M 0% /run/user/1000
Find large files
Oftentimes, there is a single large file or a few large files that are causing issues. You can find them by searching for files on the server that are over 500MB in size, and then to sort the list with the largest files listed at the end.
find / -type f -size +500M -exec du -h {} + 2>/dev/null | sort -h
In our case, a large error_log file and some backup files were identified:
root@server ~]# find / -type f -size +500M -exec du -h {} + 2>/dev/null | sort -h
5.1G /home/onecool/public_html/wp-content/backups/coolexample_backup_1.tar.gz
5.1G /home/onecool/public_html/wp-content/backups/coolexample_backup_2.tar.gz
11G /home/onecool/public_html/error_log
Any large files can then be removed using the rm command, and confirmed by typing y (yes).
root@server ~]# rm /home/onecool/public_html/error_log
rm: remove regular file ‘/home/onecool/public_html/error_log’? y
[root@server ~]#
Find large directories
You can locate large directories (not just single files) by using variants of the du command. To list the sizes of the directories from the server root (sorted by size), you can use these commands:
- Change to the / directory
root@server ~]# cd /
2. Check the disk usage
[root@server /]# du -sh *
To list the 10 largest directories and sizes (including hidden directories) in the current directory, use this command:
[root@server /]# du -sh .[!.]* * | sort -h | tail -10
To find the the 10 largest directories on the entire server (not including subdirectories), you can use this command:
[root@server /]# du -Sh / | sort -h | tail -10
Once you’ve identified a large directory, you can navigate to it, view it’s contents, and remove any unneeded files.