How to predict new disk allocation? I understand that MongoDB pre-allocates disk space, but the disk allocation I'm seeing is growing much faster than I'm anticipating.

For example, I had a database using up 8GB of actual disk space. Today a new 2GB file was pre-allocated, bringing it up to 10GB on disk. I didn't expect this, because as it looked like my data (including wasted space) would comfortably fit. 

Doing db.stats() I can see the dataSize for this database is ~2G, indexSize ~500M. The storageSize is ~4GB, so even with a lot of fragmentation it's still nowhere near the disk space now allocated.

What I'm trying to understand is why the 4GB wasn't happily contained in the first 6GB of files. Why would data have been written to the last 2GB of empty space, causing a further 2GB to be allocated?

Using the output from db.stats is it possible to predict with any certainty what data size will result in new disk allocation?

For detail: I'm running MongoDB 2.6 as a replica set, not sharded. My database contains thousands of collections, but each is not very large.
Mongo always allocates next file when perform a first write to last file.
So when collection is created it has 64MB allocated (using small files option)  in first file and mongo allocates 128MB in next chunk.

When collection grows and last file has 2GB, then when document is added to that file, next 2GB file is allocated.

file allocation sizes
e.g. 64MB (small files), 128MB, 256MB, 512MB ... 2GB - this is max size and every new one will be 2GB.)