Привет!
В конце прошлого года я провёл небольшой тест производительности дисков на Амазоне и написал по этому поводу статью. Совсем недавно Amazon Web Services анонсировали новые возможности в EBS с гарантированным количеством IOPS — 4000. Я решил написать не просто новость, а продолжить тесты с этими дисками и рассказать об этом сообществу.
Для тестов я выбрал тип инстанса m1.xlarge с EBS оптимизацией. С приаттаченым 400 гигабайтным диском с 4000 гарантированных IOPS.
Как и в прошлый раз я провёл тесты:
# hdparm -tT /dev/xcdX
# dd if=/dev/zero of=tempfile bs=5M count=1024 conv=fdatasync,notrunc
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=5M count=1024
# sysbench --num-threads=16 --test=fileio --file-total-size=5G --file-test-mode=rndrw prepare
# sysbench --num-threads=16 --test=fileio --file-total-size=5G --file-test-mode=rndrw run
Вот их результаты:
# hdparm -tT /dev/xvdf
/dev/xvdf:
Timing cached reads: 11776 MB in 1.99 seconds = 5931.57 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.22 MB/sec
/dev/xvdf:
Timing cached reads: 11804 MB in 1.98 seconds = 5947.40 MB/sec
Timing buffered disk reads: 170 MB in 3.01 seconds = 56.53 MB/sec
/dev/xvdf:
Timing cached reads: 11750 MB in 1.99 seconds = 5918.83 MB/sec
Timing buffered disk reads: 170 MB in 3.02 seconds = 56.24 MB/sec
# dd if=/dev/zero of=tempfile bs=5M count=1024 conv=fdatasync,notrunc
1024+0 records in
1024+0 records out
5368709120 bytes (5.4 GB) copied, 114.568 s, 46.9 MB/s
# echo 3 > /proc/sys/vm/drop_caches
# dd if=tempfile of=/dev/null bs=5M count=1024
1024+0 records in
1024+0 records out
5368709120 bytes (5.4 GB) copied, 99.2359 s, 54.1 MB/s
# sysbench --num-threads=16 --test=fileio --file-total-size=5G --file-test-mode=rndrw prepare
sysbench 0.5: multi-threaded system evaluation benchmark
128 files, 40960Kb each, 5120Mb total
Creating files for the test...
Extra file open flags: 0
Creating file test_file.0
Creating file test_file.1
Creating file test_file.2
Creating file test_file.3
Creating file test_file.4
Creating file test_file.5
Creating file test_file.6
Creating file test_file.7
Creating file test_file.8
Creating file test_file.9
Creating file test_file.10
Creating file test_file.11
Creating file test_file.12
Creating file test_file.13
Creating file test_file.14
Creating file test_file.15
Creating file test_file.16
Creating file test_file.17
Creating file test_file.18
Creating file test_file.19
Creating file test_file.20
Creating file test_file.21
Creating file test_file.22
Creating file test_file.23
Creating file test_file.24
Creating file test_file.25
Creating file test_file.26
Creating file test_file.27
Creating file test_file.28
Creating file test_file.29
Creating file test_file.30
Creating file test_file.31
Creating file test_file.32
Creating file test_file.33
Creating file test_file.34
Creating file test_file.35
Creating file test_file.36
Creating file test_file.37
Creating file test_file.38
Creating file test_file.39
Creating file test_file.40
Creating file test_file.41
Creating file test_file.42
Creating file test_file.43
Creating file test_file.44
Creating file test_file.45
Creating file test_file.46
Creating file test_file.47
Creating file test_file.48
Creating file test_file.49
Creating file test_file.50
Creating file test_file.51
Creating file test_file.52
Creating file test_file.53
Creating file test_file.54
Creating file test_file.55
Creating file test_file.56
Creating file test_file.57
Creating file test_file.58
Creating file test_file.59
Creating file test_file.60
Creating file test_file.61
Creating file test_file.62
Creating file test_file.63
Creating file test_file.64
Creating file test_file.65
Creating file test_file.66
Creating file test_file.67
Creating file test_file.68
Creating file test_file.69
Creating file test_file.70
Creating file test_file.71
Creating file test_file.72
Creating file test_file.73
Creating file test_file.74
Creating file test_file.75
Creating file test_file.76
Creating file test_file.77
Creating file test_file.78
Creating file test_file.79
Creating file test_file.80
Creating file test_file.81
Creating file test_file.82
Creating file test_file.83
Creating file test_file.84
Creating file test_file.85
Creating file test_file.86
Creating file test_file.87
Creating file test_file.88
Creating file test_file.89
Creating file test_file.90
Creating file test_file.91
Creating file test_file.92
Creating file test_file.93
Creating file test_file.94
Creating file test_file.95
Creating file test_file.96
Creating file test_file.97
Creating file test_file.98
Creating file test_file.99
Creating file test_file.100
Creating file test_file.101
Creating file test_file.102
Creating file test_file.103
Creating file test_file.104
Creating file test_file.105
Creating file test_file.106
Creating file test_file.107
Creating file test_file.108
Creating file test_file.109
Creating file test_file.110
Creating file test_file.111
Creating file test_file.112
Creating file test_file.113
Creating file test_file.114
Creating file test_file.115
Creating file test_file.116
Creating file test_file.117
Creating file test_file.118
Creating file test_file.119
Creating file test_file.120
Creating file test_file.121
Creating file test_file.122
Creating file test_file.123
Creating file test_file.124
Creating file test_file.125
Creating file test_file.126
Creating file test_file.127
5368709120 bytes written in 116.27 seconds (44.03 MB/sec).
# sysbench --num-threads=16 --test=fileio --file-total-size=5G --file-test-mode=rndrw run
sysbench 0.5: multi-threaded system evaluation benchmark
Running the test with following options:
Number of threads: 16
Random number generator seed is 0 and will be ignored
Extra file open flags: 0
128 files, 40Mb each
5Gb total file size
Block size 16Kb
Number of IO requests: 10000
Read/Write ratio for combined random IO test: 1.50
Periodic FSYNC enabled, calling fsync() each 100 requests.
Calling fsync() at the end of test, Enabled.
Using synchronous I/O mode
Doing random r/w test
Threads started!
Operations performed: 6000 reads, 4000 writes, 12800 Other = 22800 Total
Read 93.75Mb Written 62.5Mb Total transferred 156.25Mb (139.79Mb/sec)
8946.77 Requests/sec executed
General statistics:
total time: 1.1177s
total number of events: 10000
total time taken by event execution: 1.3737s
response time:
min: 0.01ms
avg: 0.14ms
max: 19.73ms
approx. 95 percentile: 0.52ms
Threads fairness:
events (avg/stddev): 625.0000/128.81
execution time (avg/stddev): 0.0859/0.01
Далее по совету из комментариев qxfusion, я провёл тесты iozone. За инструкцию взята эта статья.
Тест был проведён командой:
# ./iozone -Raz -b /mnt/lab.wks -g 1G
Вот лог общей операции.
В принципе, все тесты подтверждают, что производительность диска вдвое больше, чем в моих предыдущих тестах.
Удачного дня!
PS. Забыл отметить, что этот инстанс с этим диском в европейском регионе будет стоить ~$910 в месяц.
Автор: korjik