Hi!
We are trying to compare between SSD and HDD for our Elasticsearch use case.
In one of the scenarios, we want to see how fast we can Open an index.
Index size is around 4.5 - 5GB.
For SSD, we observe that there seem to be more block IO operations being done (with bigger read size).
For uniformity, we merge the index into 1 segment.
We are using https://github.com/brendangregg/perf-tools/blob/master/iosnoop
on SSD, we see a lot of IO with size around 512kb
STARTs ENDs COMM PID TYPE DEV BLOCK BYTES LATms
535881.595815 535881.605989 java 25538 R 8,16 769839040 516096 10.17
535881.595875 535881.606904 java 25538 R 8,16 769840048 516096 11.03
535881.595937 535881.607795 java 25538 R 8,16 769841056 516096 11.86
535881.595958 535881.608261 java 25538 R 8,16 769842064 516096 12.30
535881.595963 535881.608297 java 25538 R 8,16 769843072 65536 12.33
whereby for HDD, relatively having less IO with smaller size reported
STARTs ENDs COMM PID TYPE DEV BLOCK BYTES LATms
535219.823665 535219.824391 java 24474 R 8,48 798720 131072 0.73
535219.824496 535219.824791 java 24474 R 8,48 798976 131072 0.30
535219.824633 535219.826032 java 24474 R 8,48 958464 131072 1.40
535219.824938 535219.827055 java 24474 R 8,48 958720 131072 2.12
535219.826513 535219.827153 java 24474 R 8,48 958976 131072 0.64
We understand that in real scenarios there will be more segments and in this case there will be more random IO needed, hence less performance on HDD.
But here we are curious on why SSD seems to incur bigger IO size during OpenIndex.
Does Elasticsearch has different logic when writing into SSD and HDD?
or I might be missing some OS-level configuration here?
Thank you in advance!