aws-documentdb-mongoapi

AWS DocumentDB: What is the difference between instance writeIOPS and cluster volumeWriteIOPS and why is the volumeWriteIOPS 100x the writeIOPS?


We recently deployed an AWS documentDB with one instance and have about 6000 documents inserted in the past 72 hours.

Strangely, the instance and the cluster show completely different numbers for the write operations. The cluster states more than a 1000 volumeWriteIOPs while the instance shows (the much more expected) 6 writeIOPs (for the duration of the past 3 days).

Some details: Each document is on average 14kb. The collection has two indices. One on the _id field and another one on an array containing a maximum of three values (almost all documents have only one value in this array). There are approximately 2 new documents inserted and 4 documents updated each second (according to the cluster and the instance).

The readIOPs are zero in both the cluster and the instance and the IndexBufferCacheHitRatio is 99.9-100%. (the opCountersQuery is about 9).

As far as I know there are no change streams or anything except a standard setup.

I am using node/mongoose to connect to the documentDB.

My question is mostly, where are these volumeWriteIOPs coming from? Are the volumeWriteIOPs (cluster) and writeIOPs (instance) completely different measurements? Am I missing something else?


Solution

  • The cluster reports the amount of operations per second for a 5 minute interval. Not the average IOPs for that 5 minute interval but the total number of operations for that 5 minute interval. Therefore, we have to divide the reported VolumeWriteIOPs by 300 to get the actual billed write operations per second.

    You can scroll down this table to find the description for the VolumeWriteIOPs. https://docs.aws.amazon.com/documentdb/latest/developerguide/cloud_watch.html#w150aac29c23b9c11