I recently switched to Host Gator, and they have policy about the number of inodes. I just noticed that my account moved to “Not Backed Up” just recently. So, I thought I would blog a few of the things I learned while exploring…
Determining the Number of Inodes in a Directory
I found this command would do the trick:
find . -printf "%i\n" | sort -u | wc -l
One of the advantages of Host Gator is that they provide SSH access. I was able to login quickly and run the command in the different directories. If you have a host that doesn’t offer SSH access, may I suggest PHP Shell?
Git Repositories
I had a rough guess that my git repositories might be part of the culprit. If it’s based on the number of files, I guessed that git uses a bunch to track changes. So, I did a little tinkering.
Sure enough, most of the inodes in my project are in the .git directory:
$ find . -printf "%i\n" | sort -u | wc -l
2050
$ find .git -printf "%i\n" | sort -u | wc -l
1195
I found a few options to try. First, I tried the fsck command, but that didn’t seem to make a difference in the inodes:
$ git fsck --full
Checking object directories: 100% (256/256), done.
dangling commit 9e18c6e42e3f62127776bdd2f52608f904991e08
$ find .git -printf "%i\n" | sort -u | wc -l
1195
Next, I tried the gc command, and that seemed to make all the difference in the world:
# git gc --prune=today --aggressive
Counting objects: 912, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (900/900), done.
Writing objects: 100% (912/912), done.
Total 912 (delta 525), reused 0 (delta 0)
$ find .git -printf "%i\n" | sort -u | wc -l
37
The repack didn’t do much:
# git repack
Nothing new to pack.
$ find .git -printf "%i\n" | sort -u | wc -l
37
WordPress Cache
My next culprit is the WordPress Cache. For example, on one of my blogs, the cache accounts for 76% of the inode count.
$ find . -printf "%i\n" | sort -u | wc -l
23323
$ find wp-content/cache/ -printf "%i\n" | sort -u | wc -l
17766
Well, that is another task for another day. This is where I will start though. If you have any ideas, please comment.
Resources