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]

Reply via email to