goader icon indicating copy to clipboard operation
goader copied to clipboard

Тест на сервере и в виртуалке Proxmox на нём же

Open Pilat66 opened this issue 8 years ago • 3 comments

Почему в виртуалке результат выше, чем на физическом сервере? Не кэширование ли помогает?

Тест в виртуалке:

test@virtualhost:~$ ./goader_linux_amd64 -rpw 2 -max-latency 5ms -requests-engine=disk -url=tmp/RRRRRRR -body-size=4k -max-requests=300000 -show-progress=0

 Writes
Average response time: 1.114432ms
Percentile 30 - 50.11µs
Percentile 40 - 55.643µs
Percentile 50 - 61.054µs
Percentile 60 - 66.768µs
Percentile 70 - 73.759µs
Percentile 80 - 84.431µs
Percentile 90 - 111.857µs
Percentile 95 - 3.759657ms
Percentile 99 - 26.63181ms
TopTen latencies:  198.10275ms 203.438435ms 225.246525ms 236.767418ms 241.148235ms 241.450739ms 241.518367ms 242.036285ms 242.163162ms 242.603885ms 
Threads with latency below 5ms: 32
Total requests: 100152
Total errors: 0
Average OP/s:  17936
Average good OP/s:  17936


 Reads
Average response time: 191.474µs
Percentile 30 - 10.108µs
Percentile 40 - 12.02µs
Percentile 50 - 13.3µs
Percentile 60 - 15.209µs
Percentile 70 - 17.061µs
Percentile 80 - 20.369µs
Percentile 90 - 24.932µs
Percentile 95 - 31.304µs
Percentile 99 - 6.478751ms
TopTen latencies:  61.655905ms 61.695015ms 61.946065ms 62.356578ms 62.772547ms 62.802959ms 63.46258ms 65.705002ms 69.661284ms 80.488723ms 
Threads with latency below 5ms: 1
Total requests: 200272
Total errors: 0
Average OP/s:  35532
Average good OP/s:  35532

Тест на сервере:

test@host:~$ /ssdsdc/test/goader_linux_amd64 -rpw 2 -max-latency 5ms -requests-engine=disk -url=/ssdsdd/test/tmp/RRRRRRR -body-size=4k -max-requests=300000 -show-progress=0

 Writes
Average response time: 2.055671ms
Percentile 30 - 116.458µs
Percentile 40 - 131.335µs
Percentile 50 - 146.395µs
Percentile 60 - 162.461µs
Percentile 70 - 190.041µs
Percentile 80 - 243.472µs
Percentile 90 - 1.02021ms
Percentile 95 - 18.732525ms
Percentile 99 - 30.520401ms
TopTen latencies:  59.081984ms 59.57073ms 59.939992ms 60.179189ms 60.620015ms 61.073503ms 61.450208ms 61.466306ms 61.541489ms 62.755466ms 
Threads with latency below 5ms: 32
Total requests: 100253
Total errors: 0
Average OP/s:  13601
Average good OP/s:  13601


 Reads
Average response time: 165.988µs
Percentile 30 - 32.68µs
Percentile 40 - 34.791µs
Percentile 50 - 36.846µs
Percentile 60 - 39.249µs
Percentile 70 - 43.053µs
Percentile 80 - 56.993µs
Percentile 90 - 105.291µs
Percentile 95 - 160.119µs
Percentile 99 - 3.461669ms
TopTen latencies:  28.855339ms 29.082389ms 30.023422ms 30.097268ms 30.694055ms 30.832772ms 30.984025ms 32.897706ms 33.492911ms 33.744299ms 
Threads with latency below 5ms: 1
Total requests: 199878
Total errors: 0
Average OP/s:  26880
Average good OP/s:  26880

Pilat66 avatar Nov 06 '16 10:11 Pilat66

Вполне может быть что write/read cache на стороне виртуалки, либо различная конфигурация FS на стороне самого хоста, тут нужно копать кто виноват, но в этом и цель, проверка всей системы в целом, со стороны юзера

O_DIRECT я планирую добавить, ибо бывает полезно, но пока руки не дошли. Обычно когда нужно проверить голую пропускную способность диска достаточно создать временный файл из /dev/urandom и записать его на диск в 32 треда с помощью dd(32 от глубины очереди SSD, для NVME можно поставить выше)

Временный файл желательно ложить в tmpfs

dd if=/dev/urandom of=/tmp/data bs=4k count=1024
seq 32 | xargs -n1 -P32 -I{} dd of=target/path/{} if=/tmp/data oflag=direct

tigrawap avatar Nov 06 '16 13:11 tigrawap

top на сервере показал отсутствие кэширования, в виртуалках оно есть. Если тестируется с учётом кэширования, то результат будет сильно зависеть от размера файлов. Если в tmpfs, то при некоторых условиях будет работа с оперативной памятью, какой смысл память тестировать?

Pilat66 avatar Nov 06 '16 13:11 Pilat66

Я имел в виду хранить заранее считанные данные из dev/urandom в tmpfs Если запускать dd c if=/dev/urandom то urandom будет боттлнеком

tigrawap avatar Nov 06 '16 14:11 tigrawap