I have a postgresql server running on a small linode partition. It is running a web app for a site which gets on average 0 users / minute (it has not launched yet). At one point, I loaded up the database with a lot of data, to do a stress test. I have since deleted the data and now have a few hundred megabyte DB just sitting there without anyone asking anything of it.
The linode server is reporting an average IO rate of 2.6k blocks a second. I ran pidstat -d 10 90 and figured out that the culprit was postgres:
Average: PID kB_rd/s kB_wr/s kB_ccwr/s Command
Average: 28836 1251.31 0.00 0.00 postgres
Further digging shows that approximately once every three minutes postgresql decides to do some heavy lifting (a short burst of reading at 21mb/s).
I know the bare minimum when it comes to DB administration and have an issue. My research unearthed things like VACUUMing and such. However, I am not sure what is happening, why, and how to stop it. There is absolutely no load on this machine. Can anyone point me in the right direction?

DELETEd the rows from the tables instead ofTRUNCATEing tables. In that case Pg might still be going through and doing post-deletion housekeeping. – Craig Ringer Feb 19 at 23:35