Skip to content

Benchmark for Intel Optane SSD, towards an unwritten contract of Intel Optane SSD

License

Notifications You must be signed in to change notification settings

sherlockwu/OptaneBench

Repository files navigation

OptaneBench

Benchmark for Intel Optane SSD, towards an unwritten contract of Intel Optane SSD

Microworkloads

Random/Sequential workloads: (Figure 1, 4, 5, 7, 8, 10)

We control workloads with FIO. variables mainly include 0) I/O pattern 2) Queue depth and 3) request size. rand read template: fio/fio-randread.fio.template sequential read template: fio/fio-seqread.fio.template

trim_all.fio before each write workload (to avoid influence from garbage collection) rand write template: fio/fio-randread.fio.template sequential write template: fio/fio-seqread.fio.template

To note: overall queue depth = numjobs * iodepth (we use numjobs = 4 when overall QD >= 4, numjobs = 1 when overall QD < 4)

Mix:

  1. First init 10% of space with fill_all.fio
  2. Use fio-mix.fio.template to issue mixed workloads

Detecting Interleaving Degree (Figure 3)

  • reference: HPDC
  • inititialize the device:
    • trim all data: fio trim_all.fio
    • fill the storage space using sequential writes with a request size of 256KB: ./init device_name device_size(in sector) 512
  • test with different stride:
    • ./multi_thread_aio /dev/nvme0n1 8 2 8 jump 16
    • dev_name D(offset to jump, in unit of sector) j(num_parallel_jobs to submit IO) d(stride/io_size in sector) read_type(random/seq/jump) queue_depth

Parallel Sectors (Figure 6)

  • ./chunk_multi_thread_aio /dev/nvme0n1 0 2 1 randomread 4
  • chunk_multi_thread_aio dev_name D(not useful) j(num_parallel_jobs to submit IO) d(io_size in sector) read_type(random/seq/jump) queue_depth(how many parallel sector reads to a 4KB chunk)
  • blktrace is recommended to track latency of each request

Identifying Alignment Influence (Figure 9)

  • reference: HPDC
  • identify_chunk dev_name M(Estimated Max chunk size) n(req_size) k(offset)
  • M = 64 during the test. vary n and k to test (both in unit of sector)

Detecting Mapping Policy (Figure 11)

  • init with different written order
    • init: sequential write
    • random write: random_overwrite dev_name S(overwritten zone in GB, start from 0) n(req_size in sector)
  • read according to different order:
    • identify_mapping dev_name D(Estimated Max interleave degree) j(num_parallel_jobs) d(stride in chunk(16 sectors)) write_order(write order file name)

About

Benchmark for Intel Optane SSD, towards an unwritten contract of Intel Optane SSD

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published