neoremind commented on issue #16044: URL: https://github.com/apache/lucene/issues/16044#issuecomment-4759012600
@jimczi thanks for the feedback, I rerun the benchmarks with additional mmap ways suggested: `mmap + MADV_RANDOM` and `mmap + MADV_RANDOM + MADV_WILLNEED`. Share the full results below. ## Setup Same as before, repeat here for context. - **RandomReadIOBenchmark**: Each op picks 16 independent random offsets, reads `x` KB at each (prev: x=16, now: `x`=16 or 4 (exactly one page size)). - **SequentialReadIOBenchmark**: Each op picks a random starting offset, then reads 16 consecutive `x` KB blocks forward (prev: `x`=16, now: `x`=16 or 4 (exactly one page size)). Code can be found in https://github.com/apache/lucene/pull/16279. Because `NativeAccess` is not public, so this is fully self-contained code. 7 I/O strategies (two new): 1. `mmap` no madvise 2. `mmap + MADV_RANDOM` (new) 3. `mmap + MADV_RANDOM + MADV_WILLNEED` (new) 4. `FFI pread` (direct `pread(2)` syscall via FFI) 5. `FileChannel + DirectByteBuffer` (simulates `NIOFSDirectory`) 6. `FileChannel + HeapByteBuffer` (same above, with extra bounce-buffer copy) 7. `FFI pread + O_DIRECT` (bypasses kernel's page cache) Thread counts: 1, 4, 8, 16. Environment: EC2 c5.4xlarge (32G RAM, 16 vCPU), io2 EBS (20K provisioned IOPS, ~338µs 4K random read latency verified with `fio --direct=1`). JDK 25.0.2, `-Xms2g -Xmx2g`. Three data files: 16 GB, 32 GB, 64 GB. Procedure: Before each run, drop system page caches (`echo 3 > /proc/sys/vm/drop_caches`), then warm the page cache by reading the file (`cat file > /dev/null`). This gives a controlled starting state to feed data into page cache as much as possible. The key variable is how much of the working set fits in the ~30G remaininig available for page cache: 16G fits entirely (warm), 32G is at the memory limit, 64G exceeds it completely. This is meant to mimic the memory-constrained scenario described in the issue. --- ## Results: 16KB Read Size I ran with 16KB first because that was the original benchmark's read size. ### Random Read - 16G (fits in memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 39.8 | 152.8 | 281.6 | **310.5** | | mmap + MADV_RANDOM | 39.5 | 152.8 | 281.5 | **309.2** | | mmap + MADV_RANDOM + WILLNEED | 30.2 | 114.8 | 214.3 | **253.3** | | FFI pread | 23.1 | 72.2 | 118.0 | **147.8** | | FileChannel (direct) | 22.3 | 66.0 | 97.7 | **95.3** | | FileChannel (heap) | 18.9 | 60.0 | 95.3 | **92.5** | | O_DIRECT | 0.14 | 0.55 | 1.09 | **1.25** | ### Random Read - 32G (at memory limit, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 0.85 | 3.53 | 3.69 | **3.54** | | mmap + MADV_RANDOM | 0.41 | 1.38 | 3.37 | **3.29** | | mmap + MADV_RANDOM + WILLNEED | 0.38 | 1.56 | 3.17 | **3.29** | | FFI pread | 1.08 | 3.84 | 4.71 | **4.52** | | FileChannel (direct) | 0.90 | 3.65 | 4.38 | **4.32** | | FileChannel (heap) | 0.87 | 3.55 | 4.26 | **4.22** | | O_DIRECT | 0.13 | 0.55 | 1.09 | **1.25** | ### Random Read - 64G (exceeds memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 0.13 | 0.51 | 0.52 | **0.52** | | mmap + MADV_RANDOM | 0.072 | 0.29 | 0.46 | **0.46** | | mmap + MADV_RANDOM + WILLNEED | 0.072 | 0.29 | 0.46 | **0.46** | | FFI pread | 0.24 | 0.89 | 1.49 | **1.39** | | FileChannel (direct) | 0.20 | 0.82 | 1.31 | **1.28** | | FileChannel (heap) | 0.20 | 0.81 | 1.25 | **1.23** | | O_DIRECT | 0.15 | 0.60 | 1.21 | **1.25** | ### Sequential Read - 16G (fits in memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 46.5 | 180.6 | 323.4 | **329.7** | | mmap + MADV_RANDOM | 46.4 | 181.6 | 322.8 | **329.9** | | mmap + MADV_RANDOM + WILLNEED | 45.3 | 176.2 | 318.1 | **327.2** | | FFI pread | 25.4 | 91.1 | 157.4 | **213.4** | | FileChannel (direct) | 24.3 | 77.5 | 91.9 | **94.6** | | FileChannel (heap) | 21.0 | 69.1 | 96.5 | **89.0** | | O_DIRECT | 0.16 | 0.66 | 1.26 | **1.25** | ### Sequential Read - 32G (at memory limit, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 3.30 | 13.6 | 20.7 | **20.8** | | mmap + MADV_RANDOM | 0.61 | 2.43 | 4.03 | **4.06** | | mmap + MADV_RANDOM + WILLNEED | 0.61 | 2.43 | 4.04 | **3.97** | | FFI pread | 4.14 | 14.2 | 21.3 | **20.2** | | FileChannel (direct) | 3.22 | 12.7 | 20.0 | **19.7** | | FileChannel (heap) | 3.02 | 12.0 | 19.6 | **19.4** | | O_DIRECT | 0.16 | 0.65 | 1.26 | **1.25** | ### Sequential Read - 64G (exceeds memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 0.75 | 2.26 | 2.24 | **2.24** | | mmap + MADV_RANDOM | 0.09 | 0.35 | 0.57 | **0.57** | | mmap + MADV_RANDOM + WILLNEED | 0.09 | 0.35 | 0.57 | **0.56** | | FFI pread | 0.71 | 2.44 | 2.50 | **2.51** | | FileChannel (direct) | 0.69 | 2.53 | 2.50 | **2.51** | | FileChannel (heap) | 0.67 | 2.56 | 2.50 | **2.50** | | O_DIRECT | 0.16 | 0.65 | 1.27 | **1.25** | ### 16K read size observation Interestingly, at 16K read size (4 x 4K page size) the results at 32G are somewhat counterintuitive: **normal mmap actually outperforms MADV_RANDOM**. I think this is because with multi-page reads (here one read = 4 pages), NORMAL's readahead acts as an implicit batch prefetch, the first page fault pulls in adjacent pages, so the remaining pages being accessed "for free." MADV_RANDOM disables this, and forces individual page faults for each, this is why the `MADV_RANDOM` is not performing good for this setup. With that, I rerun with 4K read size, that's exactly 1 page, aiming to remove the implicit multi-page batching effects. --- ## Results: 4KB Read Size ### Random Read - 16G (fits in memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 116.7 | 443.2 | 807.1 | **1025.2** | | mmap + MADV_RANDOM | 116.5 | 442.2 | 799.8 | **1024.4** | | mmap + MADV_RANDOM + WILLNEED | 63.1 | 224.6 | 315.4 | **320.1** | | FFI pread | 44.3 | 112.0 | 142.1 | **156.8** | | FileChannel (direct) | 41.7 | 96.1 | 81.9 | **91.0** | | FileChannel (heap) | 38.6 | 92.6 | 88.1 | **94.9** | | O_DIRECT | 0.19 | 0.77 | 1.25 | **1.25** | ### Random Read - 32G (at memory limit, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 1.04 | 4.48 | 4.36 | **4.06** | | mmap + MADV_RANDOM | 1.13 | 4.74 | 7.92 | **7.86** | | mmap + MADV_RANDOM + WILLNEED | 1.14 | 4.75 | 7.87 | **7.89** | | FFI pread | 1.61 | 6.73 | 8.89 | **8.65** | | FileChannel (direct) | 1.68 | 6.83 | 8.47 | **8.32** | | FileChannel (heap) | 1.67 | 6.74 | 8.22 | **8.15** | | O_DIRECT | 0.19 | 0.77 | 1.25 | **1.25** | ### Random Read - 64G (exceeds memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 0.14 | 0.54 | 0.57 | **0.57** | | mmap + MADV_RANDOM | 0.17 | 0.71 | 1.15 | **1.15** | | mmap + MADV_RANDOM + WILLNEED | 0.17 | 0.71 | 1.15 | **1.15** | | FFI pread | 0.31 | 1.20 | 2.02 | **1.96** | | FileChannel (direct) | 0.28 | 1.16 | 1.92 | **1.90** | | FileChannel (heap) | 0.28 | 1.15 | 1.88 | **1.86** | | O_DIRECT | 0.18 | 0.76 | 1.25 | **1.25** | ### Sequential Read - 16G (fits in memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 178.3 | 698.2 | 1258.2 | **1329.8** | | mmap + MADV_RANDOM | 180.4 | 697.5 | 1256.3 | **1329.9** | | mmap + MADV_RANDOM + WILLNEED | 167.7 | 641.9 | 1180.4 | **1280.8** | | FFI pread | 52.4 | 122.6 | 148.2 | **170.7** | | FileChannel (direct) | 49.4 | 102.3 | 88.6 | **97.3** | | FileChannel (heap) | 45.8 | 99.4 | 85.9 | **96.2** | | O_DIRECT | 0.20 | 0.78 | 1.25 | **1.25** | ### Sequential Read - 32G (at memory limit, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 6.97 | 28.7 | 38.4 | **38.7** | | mmap + MADV_RANDOM | 2.14 | 8.61 | 14.2 | **14.4** | | mmap + MADV_RANDOM + WILLNEED | 2.02 | 8.63 | 14.2 | **14.3** | | FFI pread | 6.97 | 25.4 | 31.3 | **30.4** | | FileChannel (direct) | 5.89 | 23.0 | 29.6 | **29.7** | | FileChannel (heap) | 5.59 | 22.2 | 29.3 | **29.4** | | O_DIRECT | 0.20 | 0.78 | 1.25 | **1.25** | ### Sequential Read - 64G (exceeds memory, ops/ms) | Strategy | T1 | T4 | T8 | T16 | |---|---|---|---|---| | mmap | 1.20 | 4.11 | 4.12 | **4.11** | | mmap + MADV_RANDOM | 0.34 | 1.34 | 2.16 | **2.16** | | mmap + MADV_RANDOM + WILLNEED | 0.34 | 1.32 | 2.15 | **2.16** | | FFI pread | 1.21 | 4.71 | 4.87 | **4.92** | | FileChannel (direct) | 1.16 | 4.63 | 4.86 | **4.89** | | FileChannel (heap) | 1.17 | 4.72 | 4.86 | **4.90** | | O_DIRECT | 0.20 | 0.78 | 1.25 | **1.25** | ### 4K read size observation With 4KB reads (= exactly 1 page per read): 1. **Random access under memory pressure (32G/64G):** **`MADV_RANDOM` does help here, it removes readahead-induced eviction** and roughly doubles mmap throughput vs. normal (7.86 vs 4.06 at 32G T16; 1.15 vs 0.57 at 64G T16). So your point about under a working set > RAM, readahead is what inflates `pgmajfault`, readahead waste of `NORMAL` is a real factor. **BUT, `pread` still outperform `MADV_RANDOM` mmap** (8.65 vs 7.86 at 32G; 1.96 vs 1.15 at 64G). 2. **MADV_WILLNEED prefetch adds no value under memory pressure.** Under memory contention and page eviction pressure, `madvise(WILLNEED)` + immediate read doesn't help, I guess because of 1) for the benchmark, it has too little gap between the tight prefetch and read I/O, not interleaving of logics and I/O with pipelining effect, so the light-weighted async I/O has no time to complete before later reads come, and 2) this is memory constrained secenario, not cold start in memory sufficient scenario, due to eviction contention pressure, prefetched pages maybe evicted quickly in short time. For large memory sufficient but involving cold reads scenario, I've done a test in https://github.com/apache/lucene/pull/16145 to showcase the concrete real benifit of prefetch on RANDOM can bring. 3. **Sequential access under memory pressure (32G/64G):** yes, `MADV_RANDOM` is not good for sequential workloads for sure. But, `MADV_RANDOM` + `MADV_WILLNEED` prefetch doesn't save it, I wonder maybe this is the difference between kernel's native readahead vs. random + prefetch. 4. **Warm page cache (16G):** When everything fits in memory, mmap variants perform the same. mmap is way better than pread because of zero-copy page-table lookups vs. syscall overhead. No surprises here. ## Appendix 1. Running steps and logs. <details> <summary>Running script</summary> ``` #!/bin/bash sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-16G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark >> 0618.log sleep 30 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-32G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark >> 0618.log sleep 30 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-64G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark >> 0618.log sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-16G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark >> 0618.log sleep 30 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-32G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark >> 0618.log sleep 30 sync && echo 3 | sudo tee /proc/sys/vm/drop_caches cat /home/ec2-user/environment/data/pread-bench-64G.dat > /dev/null BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark >> 0618.log ``` </details> ## Appendix 2. Raw JMH benchmark results <details> <summary>16k read size</summary> 1. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.135 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.548 ± 0.005 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.087 ± 0.006 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 23.084 ± 0.362 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 72.207 ± 0.565 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 117.977 ± 0.465 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 147.844 ± 0.420 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 22.252 ± 0.340 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 65.989 ± 0.293 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 97.741 ± 2.752 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 95.273 ± 2.295 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 18.855 ± 0.161 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 60.024 ± 0.335 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 95.307 ± 1.825 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 92.476 ± 4.468 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 30.170 ± 0.463 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 114.822 ± 0.390 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 214.301 ± 0.543 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 253.322 ± 0.734 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 39.462 ± 0.611 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 152.789 ± 0.386 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 281.478 ± 2.307 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 309.198 ± 2.076 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 39.755 ± 0.498 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 152.755 ± 0.597 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 281.627 ± 1.322 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 310.528 ± 1.488 ops/ms ``` 2. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.134 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.546 ± 0.004 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.086 ± 0.007 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 1.075 ± 0.061 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 3.839 ± 0.038 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 4.710 ± 0.126 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 4.518 ± 0.037 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 0.902 ± 0.008 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 3.645 ± 0.027 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 4.377 ± 0.034 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 4.318 ± 0.037 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 0.872 ± 0.009 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 3.550 ± 0.019 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 4.258 ± 0.044 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 4.221 ± 0.039 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.380 ± 0.007 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 1.564 ± 0.019 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 3.171 ± 0.081 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 3.289 ± 0.049 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.408 ± 0.008 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 1.376 ± 0.284 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 3.372 ± 0.067 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 3.291 ± 0.060 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 0.854 ± 0.020 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 3.530 ± 0.047 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 3.685 ± 0.260 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 3.543 ± 0.218 ops/ms ``` 3. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.150 ± 0.004 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.596 ± 0.010 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.209 ± 0.017 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 0.237 ± 0.005 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 0.885 ± 0.021 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 1.489 ± 0.050 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 1.385 ± 0.023 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 0.203 ± 0.003 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 0.816 ± 0.009 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 1.307 ± 0.012 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 1.280 ± 0.007 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 0.199 ± 0.003 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 0.807 ± 0.010 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 1.246 ± 0.007 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 1.234 ± 0.008 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.072 ± 0.001 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 0.286 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 0.463 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 0.463 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.072 ± 0.001 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 0.287 ± 0.003 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 0.463 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 0.463 ± 0.002 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 0.126 ± 0.005 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 0.514 ± 0.015 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 0.518 ± 0.007 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 0.523 ± 0.004 ops/ms ``` 4. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.162 ± 0.002 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.656 ± 0.007 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.263 ± 0.019 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 25.418 ± 0.324 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 91.096 ± 1.046 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 157.399 ± 0.722 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 213.354 ± 0.819 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 24.300 ± 0.289 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 77.502 ± 1.738 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 91.900 ± 2.003 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 94.626 ± 4.892 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 20.972 ± 0.084 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 69.081 ± 0.507 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 96.540 ± 4.517 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 89.014 ± 2.428 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 45.333 ± 0.520 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 176.242 ± 0.780 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 318.052 ± 1.694 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 327.192 ± 1.528 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 46.444 ± 0.320 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 181.627 ± 0.990 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 322.784 ± 2.351 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 329.891 ± 1.668 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 46.531 ± 0.444 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 180.635 ± 1.001 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 323.417 ± 1.839 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 329.663 ± 1.761 ops/ms ``` 5. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.160 ± 0.002 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.646 ± 0.006 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.264 ± 0.020 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 4.143 ± 0.174 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 14.181 ± 0.369 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 21.335 ± 0.577 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 20.192 ± 0.179 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 3.220 ± 0.048 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 12.694 ± 0.144 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 19.969 ± 0.228 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 19.727 ± 0.160 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 3.021 ± 0.033 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 11.965 ± 0.119 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 19.599 ± 0.191 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 19.423 ± 0.185 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.610 ± 0.032 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 2.429 ± 0.060 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 4.038 ± 0.089 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 3.973 ± 0.060 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.608 ± 0.034 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 2.430 ± 0.046 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 4.032 ± 0.073 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 4.060 ± 0.066 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 3.302 ± 0.067 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 13.577 ± 0.206 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 20.736 ± 0.422 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 20.764 ± 0.387 ops/ms ``` 6. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.160 ± 0.002 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.645 ± 0.005 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.266 ± 0.014 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 0.705 ± 0.017 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 2.439 ± 0.037 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 2.498 ± 0.016 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 2.507 ± 0.020 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 0.688 ± 0.011 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 2.529 ± 0.068 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 2.499 ± 0.016 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 2.508 ± 0.015 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 0.674 ± 0.011 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 2.557 ± 0.082 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 2.504 ± 0.014 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 2.497 ± 0.015 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.087 ± 0.002 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 0.348 ± 0.006 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 0.568 ± 0.007 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 0.564 ± 0.009 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.090 ± 0.004 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 0.350 ± 0.007 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 0.570 ± 0.009 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 0.571 ± 0.008 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 0.747 ± 0.013 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 2.256 ± 0.019 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 2.242 ± 0.018 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 2.238 ± 0.012 ops/ms ``` </details> <details> <summary>4k read size</summary> 1. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.187 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.770 ± 0.007 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.251 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 44.263 ± 0.543 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 112.036 ± 1.170 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 142.110 ± 0.682 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 156.820 ± 0.638 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 41.652 ± 0.177 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 96.074 ± 0.490 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 81.925 ± 2.589 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 90.979 ± 1.791 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 38.596 ± 0.342 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 92.561 ± 1.020 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 88.113 ± 4.992 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 94.899 ± 5.011 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 63.115 ± 0.272 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 224.553 ± 1.006 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 315.368 ± 5.443 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 320.093 ± 9.261 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 116.543 ± 4.074 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 442.200 ± 5.181 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 799.843 ± 7.595 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 1024.371 ± 5.647 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 116.683 ± 1.401 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 443.231 ± 6.709 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 807.078 ± 3.223 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 1025.198 ± 5.177 ops/ms ``` 2. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.188 ± 0.002 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.774 ± 0.007 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.251 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 1.607 ± 0.072 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 6.730 ± 0.180 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 8.894 ± 0.115 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 8.650 ± 0.117 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 1.683 ± 0.028 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 6.834 ± 0.134 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 8.465 ± 0.044 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 8.323 ± 0.070 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 1.669 ± 0.028 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 6.735 ± 0.082 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 8.218 ± 0.092 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 8.152 ± 0.082 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 1.141 ± 0.017 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 4.750 ± 0.042 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 7.865 ± 0.108 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 7.893 ± 0.065 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 1.131 ± 0.021 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 4.737 ± 0.060 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 7.915 ± 0.073 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 7.862 ± 0.102 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 1.035 ± 0.036 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 4.483 ± 0.163 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 4.357 ± 0.349 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 4.064 ± 0.362 ops/ms ``` 3. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar RandomReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units RandomReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.184 ± 0.002 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.763 ± 0.007 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms RandomReadIOBenchmark.ffiPread_T01 thrpt 15 0.305 ± 0.005 ops/ms RandomReadIOBenchmark.ffiPread_T04 thrpt 15 1.202 ± 0.011 ops/ms RandomReadIOBenchmark.ffiPread_T08 thrpt 15 2.015 ± 0.022 ops/ms RandomReadIOBenchmark.ffiPread_T16 thrpt 15 1.963 ± 0.013 ops/ms RandomReadIOBenchmark.fileChannelDirect_T01 thrpt 15 0.282 ± 0.004 ops/ms RandomReadIOBenchmark.fileChannelDirect_T04 thrpt 15 1.157 ± 0.011 ops/ms RandomReadIOBenchmark.fileChannelDirect_T08 thrpt 15 1.919 ± 0.009 ops/ms RandomReadIOBenchmark.fileChannelDirect_T16 thrpt 15 1.899 ± 0.008 ops/ms RandomReadIOBenchmark.fileChannelHeap_T01 thrpt 15 0.281 ± 0.004 ops/ms RandomReadIOBenchmark.fileChannelHeap_T04 thrpt 15 1.150 ± 0.017 ops/ms RandomReadIOBenchmark.fileChannelHeap_T08 thrpt 15 1.877 ± 0.006 ops/ms RandomReadIOBenchmark.fileChannelHeap_T16 thrpt 15 1.863 ± 0.009 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.173 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 0.707 ± 0.007 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 1.152 ± 0.003 ops/ms RandomReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 1.150 ± 0.003 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.174 ± 0.002 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 0.709 ± 0.007 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 1.151 ± 0.004 ops/ms RandomReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 1.149 ± 0.005 ops/ms RandomReadIOBenchmark.mmap_T01 thrpt 15 0.143 ± 0.005 ops/ms RandomReadIOBenchmark.mmap_T04 thrpt 15 0.535 ± 0.012 ops/ms RandomReadIOBenchmark.mmap_T08 thrpt 15 0.567 ± 0.004 ops/ms RandomReadIOBenchmark.mmap_T16 thrpt 15 0.569 ± 0.005 ops/ms ``` 4. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-16G.dat BENCH_FILE_SIZE_MIB=16384 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.196 ± 0.003 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.776 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 52.405 ± 0.585 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 122.624 ± 0.725 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 148.214 ± 0.705 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 170.702 ± 0.823 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 49.409 ± 0.241 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 102.274 ± 1.213 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 88.595 ± 2.992 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 97.257 ± 2.132 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 45.785 ± 0.352 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 99.379 ± 0.653 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 85.895 ± 0.909 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 96.213 ± 2.784 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 167.654 ± 1.014 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 641.889 ± 2.295 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 1180.445 ± 5.656 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 1280.752 ± 6.500 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 180.405 ± 1.514 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 697.453 ± 2.185 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 1256.306 ± 7.950 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 1329.944 ± 6.857 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 178.272 ± 1.989 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 698.206 ± 2.035 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 1258.231 ± 6.702 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 1329.807 ± 7.060 ops/ms ``` 5. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-32G.dat BENCH_FILE_SIZE_MIB=32768 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.196 ± 0.004 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.777 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 6.972 ± 0.162 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 25.433 ± 0.508 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 31.261 ± 0.531 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 30.382 ± 0.295 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 5.894 ± 0.078 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 23.033 ± 0.251 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 29.619 ± 0.295 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 29.718 ± 0.300 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 5.586 ± 0.098 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 22.239 ± 0.269 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 29.341 ± 0.420 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 29.401 ± 0.287 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 2.018 ± 0.093 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 8.625 ± 0.109 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 14.248 ± 0.135 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 14.259 ± 0.132 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 2.138 ± 0.051 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 8.608 ± 0.098 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 14.207 ± 0.171 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 14.379 ± 0.133 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 6.967 ± 0.154 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 28.676 ± 0.445 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 38.415 ± 1.378 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 38.710 ± 1.137 ops/ms ``` 6. BENCH_FILE=/home/ec2-user/environment/data/pread-bench-64G.dat BENCH_FILE_SIZE_MIB=65536 BENCH_DROP_CACHES=false java -jar lucene/benchmark-jmh/build/benchmarks/lucene-benchmark-jmh-11.0.0-SNAPSHOT.jar SequentialReadIOBenchmark ``` Benchmark Mode Cnt Score Error Units SequentialReadIOBenchmark.ffiPreadDirectIO_T01 thrpt 15 0.197 ± 0.004 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T04 thrpt 15 0.777 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T08 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPreadDirectIO_T16 thrpt 15 1.250 ± 0.001 ops/ms SequentialReadIOBenchmark.ffiPread_T01 thrpt 15 1.205 ± 0.016 ops/ms SequentialReadIOBenchmark.ffiPread_T04 thrpt 15 4.705 ± 0.084 ops/ms SequentialReadIOBenchmark.ffiPread_T08 thrpt 15 4.866 ± 0.030 ops/ms SequentialReadIOBenchmark.ffiPread_T16 thrpt 15 4.915 ± 0.029 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T01 thrpt 15 1.164 ± 0.020 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T04 thrpt 15 4.628 ± 0.055 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T08 thrpt 15 4.858 ± 0.028 ops/ms SequentialReadIOBenchmark.fileChannelDirect_T16 thrpt 15 4.892 ± 0.041 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T01 thrpt 15 1.171 ± 0.019 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T04 thrpt 15 4.723 ± 0.043 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T08 thrpt 15 4.863 ± 0.090 ops/ms SequentialReadIOBenchmark.fileChannelHeap_T16 thrpt 15 4.903 ± 0.058 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T01 thrpt 15 0.337 ± 0.010 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T04 thrpt 15 1.318 ± 0.015 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T08 thrpt 15 2.149 ± 0.026 ops/ms SequentialReadIOBenchmark.mmapMadvRandomWillneed_T16 thrpt 15 2.161 ± 0.017 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T01 thrpt 15 0.336 ± 0.007 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T04 thrpt 15 1.335 ± 0.009 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T08 thrpt 15 2.161 ± 0.018 ops/ms SequentialReadIOBenchmark.mmapMadvRandom_T16 thrpt 15 2.156 ± 0.017 ops/ms SequentialReadIOBenchmark.mmap_T01 thrpt 15 1.199 ± 0.028 ops/ms SequentialReadIOBenchmark.mmap_T04 thrpt 15 4.106 ± 0.044 ops/ms SequentialReadIOBenchmark.mmap_T08 thrpt 15 4.117 ± 0.024 ops/ms SequentialReadIOBenchmark.mmap_T16 thrpt 15 4.114 ± 0.026 ops/ms ``` </details> -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
