Joe:
If you run mongostat you will see what percentage of the cache is being used - the dirty %'s shows how much data there will be to write out to disk during checkpoints. This means that you might not want to raise the cache - if your cache is really big and you usually dirty most of it by the time checkpoints come around, the checkpoints would take longer, and then when they write, they may end up waiting for disk IO since memory not used for cache will end up being used by the OS for file system cache.
The less file system cache the more synchronous the IO during checkpoints. This may manifest in slowdown in throughput during latter part of the checkpoint. We're working on improving that, but I wouldn't go crazy taking all the RAM for mongod at this point.
I'm not aware of a way to tell how many pages are being used for a particular collection.
Can you clarify what exactly you are snapshotting? It doesn't seem like you are talking about backups, are you? If you are, then you should be doing snapshots on the secondary, and best thing would be to shut down mongod, take the file system snapshot and start up mongod again. That's the safest way, as it makes sure there is nothing changing in the file at the time of the snapshot.
Compact in WT will rewrite the collection contiguously - it shouldn't be necessary as WT reuses pages as it frees them up. If you notice that you shrank the space usage a lot by running compact, it's a false saving, unless you are never going to update any documents in that collection again. Otherwise as soon as you do update them, new pages will be allocated to rewrite the changed pages, and old pages will be reused.
Asya