On my database server right now I have 16GB of ram and an 8GB capped collection with about 4GB of indexes. So I may understand this wrong but shouldn't this only ever use around 12GB of my RAM or maybe a bit more? After about 2 weeks of running the database it starts to act like it no longer fits into memory with insert speeds slowing down significantly and I have to repair the database. Am I just misunderstanding the way this should work?
You might be running into a similar issue. Do you have several indexes on your data? Can you do a db.coll.stats()? And maybe show some output of mongostat while it's running slower?
I've heard similar complaints in the past, but haven't actually used capped collections myself.