How does the save_top_k work in ModelCheckpoint()

When I set the save_top_k = 3 and file_name="best", I get 3 version of checkpoint in my save folder. The name of files is best.ckpt, best-v1.ckpt, best-v2.ckpt. But the order of modification time of these files is inconsistent with the order of versions in the file name.
like this

best.ckpt    #2023/8/31 0:43
best-v1.ckpt    #2023/8/31 0:49
best-v2.ckpt    #2023/8/30 21:52

And I wonder what’s going on when saving the ckpt.