mirror of https://github.com/cirruslabs/tart.git
70 lines
3.3 KiB
Go
70 lines
3.3 KiB
Go
package fio
|
|
|
|
type Benchmark struct {
|
|
Name string
|
|
Command string
|
|
}
|
|
|
|
var benchmarks = []Benchmark{
|
|
{
|
|
// Ars Technica's "Single 4KiB random write process" test[1]
|
|
// with JSON output and created file cleanup
|
|
//
|
|
// [1]: https://arstechnica.com/gadgets/2020/02/how-fast-are-your-disks-find-out-the-open-source-way-with-fio/
|
|
Name: "Single 4KiB random write process",
|
|
Command: "fio --name=benchmark --ioengine=posixaio --rw=randwrite --bs=4k --size=4g --numjobs=1 --iodepth=1 --runtime=60 --time_based --end_fsync=1" +
|
|
" --output-format json --unlink 1",
|
|
},
|
|
{
|
|
// Ars Technica's "16 parallel 64KiB random write processes" test[1]
|
|
// with JSON outpu, created file cleanup and group reporting (for
|
|
// easier analysis)
|
|
//
|
|
// [1]: https://arstechnica.com/gadgets/2020/02/how-fast-are-your-disks-find-out-the-open-source-way-with-fio/
|
|
Name: "16 parallel 64KiB random write processes",
|
|
Command: "fio --name=benchmark --ioengine=posixaio --rw=randwrite --bs=64k --size=256m --numjobs=16 --iodepth=16 --runtime=60 --time_based --end_fsync=1" +
|
|
" --output-format json --unlink 1 --group_reporting",
|
|
},
|
|
{
|
|
// Ars Technica's "16 parallel 64KiB random write processes" test[1]
|
|
// with JSON output, created file cleanup and reduced file I/O size
|
|
// from 16 to 10 GB to avoid "No space left on device".
|
|
//
|
|
// [1]: https://arstechnica.com/gadgets/2020/02/how-fast-are-your-disks-find-out-the-open-source-way-with-fio/
|
|
Name: "Single 1MiB random write process",
|
|
Command: "fio --name=benchmark --ioengine=posixaio --rw=randwrite --bs=1m --size=10g --numjobs=1 --iodepth=1 --runtime=60 --time_based --end_fsync=1" +
|
|
" --output-format json --unlink 1",
|
|
},
|
|
{
|
|
// Oracle's "Test random read/writes" (in IOPS Performance Tests[1]) category
|
|
// with JSON output, created file cleanup, without ETA newline, without custom
|
|
// file path, with file I/O size reduced from 500GB to 2GB to prevent
|
|
// "No space left on device" and with posixaio instead of libaio.
|
|
//
|
|
// [1]: https://docs.oracle.com/en-us/iaas/Content/Block/References/samplefiocommandslinux.htm#FIO_Commands
|
|
Name: "Random reads/writes (4k)",
|
|
Command: "fio --name=benchmark --size=2GB --direct=1 --rw=randrw --bs=4k --ioengine=posixaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting" +
|
|
" --output-format json --unlink 1",
|
|
},
|
|
{
|
|
// Oracle's "Test random read/writes" (in Throughput Performance Tests[1]) category
|
|
// with JSON output, created file cleanup, without ETA newline, without custom
|
|
// file path, with file I/O size reduced from 500GB to 2GB to prevent
|
|
// "No space left on device" and with posixaio instead of libaio.
|
|
//
|
|
// [1]: https://docs.oracle.com/en-us/iaas/Content/Block/References/samplefiocommandslinux.htm#Throughput_Performance_Tests
|
|
Name: "Random reads/writes (64k)",
|
|
Command: "fio --name=benchmark --size=2GB --direct=1 --rw=randrw --bs=64k --ioengine=posixaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting" +
|
|
" --output-format json --unlink 1",
|
|
},
|
|
{
|
|
// RedHat's "How can I test to see if my environment is fast enough for etcd"[1]
|
|
// with custom name
|
|
//
|
|
// [1]: https://access.redhat.com/solutions/5726511
|
|
Name: "sync test",
|
|
Command: "mkdir -p test-data && fio --name=benchmark --rw=write --ioengine=sync --fdatasync=1 --directory=test-data --size=22m --bs=2300" +
|
|
" --output-format json --unlink 1",
|
|
},
|
|
}
|