What is Your IOPS with no ingress but during filewalking?

People are greatly misunderstanding how IO priorities work. I’ve explained it before, but I’ll have another go.

Normal filewalker: “Gimme gimme gimme gimme!!!”. Uses up all of the disk’s IOPS, numbers go up => it must be great!. No IOPS left for the actual storagenode => lower ingress => less stored data. Your disk simply isn’t fast enough and loses races.

Lazy filewalker: “Can I please read some data from the disk?” Host system prioritizes from high priority (actual storagenode process) to low priority (lazy filewalker) and answers “no, not right now, I’m trying to write a file, check back in a bit”. Lower IOPS, numbers go down => it sucks!!!. Most IOPS go to the actual storagenode process => higher ingress => more stored data. Your disk promptly reacts to read/writes from clients, everyone is happy.

As long as the storagenode process isn’t running in a VM (= host system doesn’t understand that a spawned sub-process is actually lower priority), then the best way is to enable the lazy mode. Lower numbers do not mean anything. Context of those numbers is everything.

When a drive eventually (hopefully) fills up, it can’t write any more data. The only IOPS required are reads, so unless you have the luckiest node on the planet and it stores pieces of every single file on the network that is being requested by a client, then it will have plenty of “free” IOPS for the lazy filewalkers. In this instance, the reply to the “Can I please read some data from the disk?” question is a “Absolutely, here you go!”.

TL;DR: Lazy is better. Enable it and forget about it.

2 Likes