Difference between used and dirty memory in Wired Tiger

Hi everybody,

I still do not understand the difference between used memory and dirty memory in mongostat output.
And why when the cache is low, used memory is much more than dirty memory.

Although I know the definitions of virtual memory.

Dirty is data that has not been persisted yet. Waiting to be flushed to disk by a checkpoint.

So why when the cache is low, used memory is much more than dirty memory?

What I understand, as the cache is low, there is no sufficient memory to accommodate new dirty data, so used memory try to page out a lot of data to have free RAM to receive new in-coming dirty data, and that’s why the used memory grows.