tools/android: Disk IO simple benchmark tool.
Adds a simple tool writing random data to a file, then reading it. The
file is optionally evicted from the OS page cache between the read and
write. This is used to assess device IO performance locally.
From an Android Go device (Gobo) running O MR1 with 360MB free on /data:
Without the OS page cache:
$ adb shell /data/local/tmp/io_benchmark /data/local/tmp/test 1
Size = 4096
Write 4096 = 50.0us (81.92MB/s)
Read 4096 = 1489.0us (2.75MB/s)
Size = 8192
Write 8192 = 61.0us (134.30MB/s)
Read 8192 = 1486.0us (5.51MB/s)
Size = 16384
Write 16384 = 81.0us (202.27MB/s)
Read 16384 = 1602.0us (10.23MB/s)
Size = 32768
Write 32768 = 145.0us (225.99MB/s)
Read 32768 = 1877.0us (17.46MB/s)
Size = 65536
Write 65536 = 215.0us (304.82MB/s)
Read 65536 = 2656.0us (24.67MB/s)
Size = 131072
Write 131072 = 468.0us (280.07MB/s)
Read 131072 = 4531.0us (28.93MB/s)
Size = 262144
Write 262144 = 642.0us (408.32MB/s)
Read 262144 = 5041.0us (52.00MB/s)
Size = 524288
Write 524288 = 1219.0us (430.10MB/s)
Read 524288 = 8949.0us (58.59MB/s)
Size = 1048576
Write 1048576 = 2466.0us (425.21MB/s)
Read 1048576 = 13606.0us (77.07MB/s)
Size = 2097152
Write 2097152 = 4908.0us (427.29MB/s)
Read 2097152 = 25840.0us (81.16MB/s)
Size = 4194304
Write 4194304 = 9502.0us (441.41MB/s)
Read 4194304 = 76867.0us (54.57MB/s)
Size = 8388608
Write 8388608 = 20814.0us (403.03MB/s)
Read 8388608 = 119062.0us (70.46MB/s)
With it:
$ adb shell /data/local/tmp/io_benchmark /data/local/tmp/test 0
Size = 4096
Write 4096 = 56.0us (73.14MB/s)
Read 4096 = 172.0us (23.81MB/s)
Size = 8192
Write 8192 = 65.0us (126.03MB/s)
Read 8192 = 23.0us (356.17MB/s)
Size = 16384
Write 16384 = 101.0us (162.22MB/s)
Read 16384 = 35.0us (468.11MB/s)
Size = 32768
Write 32768 = 134.0us (244.54MB/s)
Read 32768 = 57.0us (574.88MB/s)
Size = 65536
Write 65536 = 229.0us (286.18MB/s)
Read 65536 = 109.0us (601.25MB/s)
Size = 131072
Write 131072 = 348.0us (376.64MB/s)
Read 131072 = 170.0us (771.01MB/s)
Size = 262144
Write 262144 = 721.0us (363.58MB/s)
Read 262144 = 354.0us (740.52MB/s)
Size = 524288
Write 524288 = 1895.0us (276.67MB/s)
Read 524288 = 783.0us (669.59MB/s)
Size = 1048576
Write 1048576 = 2405.0us (436.00MB/s)
Read 1048576 = 2872.0us (365.10MB/s)
Size = 2097152
Write 2097152 = 4688.0us (447.34MB/s)
Read 2097152 = 3398.0us (617.17MB/s)
Size = 4194304
Write 4194304 = 10358.0us (404.93MB/s)
Read 4194304 = 6556.0us (639.77MB/s)
Size = 8388608
Write 8388608 = 19040.0us (440.58MB/s)
Read 8388608 = 17753.0us (472.52MB/s)
TBR=digit@chromium.org # per tools/OWNERS
Bug: 837659, 857070
Change-Id: I33fe4aeb287a5c5910c941a580093d9fecf8f758
Reviewed-on: https://chromium-review.googlesource.com/1116700
Commit-Queue: Benoit L <lizeb@chromium.org>
Reviewed-by: Benoit L <lizeb@chromium.org>
Reviewed-by: David Turner <digit@chromium.org>
Reviewed-by: Egor Pasko <pasko@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#571077}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 989545c9dfe41a3159e664a08641da139111c7c0
4 files changed