When I first got my 16GB Nexus 7, it was fast. Probably faster than any other Android device I'd ever used. Everything was fluid, apps launched quickly, and transitioning between open applications was the best experience that I'd ever had on Android.
I was in love.
Then, a couple weeks ago, it inexplicably started to lag. A lot. I had just installed a test build of Horn, so I assumed that had something to do with it and uninstalled the game. After a quick reboot, I expected all would go back to normal. I was wrong.
I checked to see if anything out of the ordinary was running in the background, but found nothing amiss. Assuming that the tablet was possibly running low on storage, I jumped into the Storage menu. There were nearly 2GBs of free space.
Finally, I gave up trying to figure out what was going on and decided to perform a factory reset. As it were, I had been planning on unlocking/rooting for a while, so I was going to have to start over anyway. So that's what I did, and everything has been golden ever since.
Two days ago, we got a tip that many 16GB N7s were suffering from terrible performance with less than 3GB of storage space left. Could this be what happened to mine? After reading thread after thread, I'd almost guarantee it. Like I said, the last thing I installed was Horn, which clocks in at nearly 2GB. That put my precious Nexus 7 just under the 3GB threshold. After performing a factory reset and re-installing several apps (including Horn), I now have a little over 5GB free, and it's still running like a top.
So, what's the cause for this issue? At this point, it's hard to say. Given ASUS' history of problems with physical storage, however, I would assume the culprit is likely found within the hardware. Further backing up that theory, the 8GB and 16GB variants of the N7 use different eMMC packages, which explains why the former doesn't suffer the same issue (good thing, too).
You don't have to take my word for it, either. There are plenty of benchmark results floating around that show the incredible difference in performance with less than 3GB free versus after a fresh install. For example, take a look at the results in this thread over at XDA (tested with AndroBench):
Before factory reset:
SEQ RD: 17.83 MB/s
SEQ WR: 0.56 MB/s
RND RD: 1548.85 IOPS(4K)
RND WR: 33.0 IPOS(4K)
Insert: 1.36 TPS
Update: 3.29 TPS
Delete: 3.17 TPS
After factory reset:
SEQ RD: 12.29 MB/s
SEQ WR: 7.8 MB/s
RND RD: 753.66 IOPS(4K)
RND WR: 74.12 IPOS(4K)
Insert: 27.74 TPS
Update: 26.15 TPS
Delete: 28.92 TPS
As you can see, there is a pretty massive difference in the sequential write, as well as all the SQLite results.
According to this thread on Google's product forums, there has already been a case opened with ASUS, and the OP is requesting that others who are experiencing this problem do the same. Unfortunately, it's unlikely that ASUS will respond or do anything about it, given their response to I/O issues of the recent Transformer tablets (read: none).
For now, the only real solution is to keep at least 3GB of storage free at all times. It's not ideal by any standard - after all, you did pay for 16GB of storage space - but for now, it's the only thing we have.
[Thanks for the tip, Jenkins!]