-
Type: Workload
-
Resolution: Works as Designed
-
Priority: Major - P3
-
None
-
Affects Version/s: 5.3.0-rc4
-
Component/s: Block Manager
-
Environment:Linux 5.4.0
Running YCSB-A (and changing update rate to 100%), and observing the I/O using blktrace, I find that MongoDB issue writes in different sizes, sometimes 4KB, 8KB, 16KB 20KB (+8/+16/+32/+40 at last of each row):
259,8 15 4340 42.036937565 417 D WFS 416915888 + 8 [kworker/15:1H] 259,8 15 4351 42.041572626 471 D WS 416915896 + 16 [jbd2/nvme2n1p4-] 259,8 15 4356 42.041601220 417 D FN [kworker/15:1H] 259,8 15 4358 42.042938434 417 D WFS 416915912 + 8 [kworker/15:1H] 259,8 15 4369 42.047559157 471 D WS 416915920 + 16 [jbd2/nvme2n1p4-] 259,8 15 4374 42.047587040 417 D FN [kworker/15:1H] 259,8 15 4376 42.048928562 417 D WFS 416915936 + 8 [kworker/15:1H] 259,8 15 4387 42.053558684 471 D WS 416915944 + 16 [jbd2/nvme2n1p4-] 259,8 15 4392 42.053584714 417 D FN [kworker/15:1H] 259,8 15 4394 42.054936124 417 D WFS 416915960 + 8 [kworker/15:1H] 259,8 5 6833 42.011513979 8054 D WS 469224192 + 40 [JournalFlusher] 259,8 5 6843 42.017508575 8054 D WS 469224224 + 32 [JournalFlusher] 259,8 5 6853 42.023523522 8054 D WS 469224248 + 40 [JournalFlusher] 259,8 5 6863 42.029511596 8054 D WS 469224280 + 32 [JournalFlusher] 259,8 5 6873 42.035518888 8054 D WS 469224304 + 32 [JournalFlusher] 259,8 5 6883 42.041512542 8054 D WS 469224328 + 32 [JournalFlusher] 259,8 5 6893 42.047510425 8054 D WS 469224352 + 40 [JournalFlusher] 259,8 5 6903 42.053508139 8054 D WS 469224384 + 40 [JournalFlusher]
This works well in my old HDD, but when I upgrade to NVMe SSD, and did some benchmarks on its performance, I find that my SSD performance is bad when the write size is not multiple of 32KB.
So is there any ways that I can workaround this issue? Thanks!