[Odu] IO benchmarking utility
This is first cut to keep review rolling. The patch allows me to incorporate feedback from review as I keep working on the tool. There are plenty of TODOs that might serve as a hint to reviewers what I intend to do in the future, There are codes that look noop which I have retained because it makes testing easier. The current version parses only one argument (a file name) and runs load for few seconds or a minute at max. When run - output looks like this. $ odu /tmp/f ===== Aggregate Stats ===== Runtime:50.15060829s IOs:303 write_size(MB):62.40 IOPS:4.79 LAT(us):208579.46 BW(MB/s):0.98 If I print thread specific stats and stage stats the output would look like $ odu /tmp/e ===== For generator-0 ===== Generate TimeInStage:344791630 IOPS:292.93 LAT(us):3413.78 BW(MB/s):58.01 Issue TimeInStage:24016252450 IOPS:4.21 LAT(us):237784.68 BW(MB/s):0.83 Verify TimeInStage:6253520 IOPS:16150.90 LAT(us):61.92 BW(MB/s):3198.20 Runtime:49.78938866s IOs:101 write_size(MB):20.80 IOPS:4.21 LAT(us):237784.68 BW(MB/s):0.83 ===== For generator-1 ===== Generate TimeInStage:494067320 IOPS:204.43 LAT(us):4891.76 BW(MB/s):40.48 Issue TimeInStage:22197400730 IOPS:4.55 LAT(us):219776.24 BW(MB/s):0.90 Verify TimeInStage:1960320 IOPS:51522.20 LAT(us):19.41 BW(MB/s):10202.42 Runtime:52.46426601s IOs:101 write_size(MB):20.80 IOPS:4.55 LAT(us):219776.24 BW(MB/s):0.90 ===== For generator-2 ===== Generate TimeInStage:634360370 IOPS:159.22 LAT(us):6280.80 BW(MB/s):31.53 Issue TimeInStage:24582622520 IOPS:4.11 LAT(us):243392.30 BW(MB/s):0.81 Verify TimeInStage:21145570 IOPS:4776.41 LAT(us):209.36 BW(MB/s):945.82 Runtime:48.96960358s IOs:101 write_size(MB):20.80 IOPS:4.11 LAT(us):243392.30 BW(MB/s):0.81 ===== Aggregate Stats ===== Generate TimeInStage:1473219320 IOPS:205.67 LAT(us):4862.11 BW(MB/s):42.08 Issue TimeInStage:70796275700 IOPS:4.28 LAT(us):233651.07 BW(MB/s):0.88 Verify TimeInStage:29359410 IOPS:10320.37 LAT(us):96.90 BW(MB/s):2111.76 Runtime:52.47356284s IOs:303 write_size(MB):62.40 IOPS:4.28 LAT(us):233651.07 BW(MB/s):0.88 Utility saves the arguments to generator in a file called "./output.confing" whose content may look like [{"magic_number":5720826294568186926,"process_id":3,"name":"generator-0", "generator_unique_id":0,"block_size":4096,"max_io_size":1048576,"align": true,"seed":0,"target_name":"e","target_range":{"start":0,"end":6990506}, "target_type":"target_file","issuer_queue_depth":40,"max_io_count":100, "sequential":true}...] Test: fx run-test odu_tests -- --nocapture Change-Id: I219379093dfef14a0979678ce2e34a76fc5b9bbf
Showing
- garnet/bin/odu/BUILD.gn 64 additions, 0 deletionsgarnet/bin/odu/BUILD.gn
- garnet/bin/odu/meta/odu.cmx 8 additions, 0 deletionsgarnet/bin/odu/meta/odu.cmx
- garnet/bin/odu/meta/odu_bin_test.cmx 8 additions, 0 deletionsgarnet/bin/odu/meta/odu_bin_test.cmx
- garnet/bin/odu/src/file_target.rs 362 additions, 0 deletionsgarnet/bin/odu/src/file_target.rs
- garnet/bin/odu/src/generator.rs 453 additions, 0 deletionsgarnet/bin/odu/src/generator.rs
- garnet/bin/odu/src/io_packet.rs 154 additions, 0 deletionsgarnet/bin/odu/src/io_packet.rs
- garnet/bin/odu/src/issuer.rs 155 additions, 0 deletionsgarnet/bin/odu/src/issuer.rs
- garnet/bin/odu/src/log.rs 177 additions, 0 deletionsgarnet/bin/odu/src/log.rs
- garnet/bin/odu/src/main.rs 166 additions, 0 deletionsgarnet/bin/odu/src/main.rs
- garnet/bin/odu/src/operations.rs 161 additions, 0 deletionsgarnet/bin/odu/src/operations.rs
- garnet/bin/odu/src/sequential_io_generator.rs 445 additions, 0 deletionsgarnet/bin/odu/src/sequential_io_generator.rs
- garnet/bin/odu/src/verifier.rs 163 additions, 0 deletionsgarnet/bin/odu/src/verifier.rs
- garnet/packages/prod/BUILD.gn 8 additions, 0 deletionsgarnet/packages/prod/BUILD.gn
- garnet/packages/tests/BUILD.gn 8 additions, 0 deletionsgarnet/packages/tests/BUILD.gn
Loading
Please register or sign in to comment