algodev-github / s Goto Github PK
View Code? Open in Web Editor NEWI/O Benchmark Suite
Home Page: http://algogroup.unimore.it/algodev/
License: Other
I/O Benchmark Suite
Home Page: http://algogroup.unimore.it/algodev/
License: Other
Small collection of benchmarks for storage I/O - Version 3.6 This suite evaluates: - responsiveness, by measuring start-up times of real applications under configurable background workloads - latency for soft real-time applications, by measuring playback quality (drop rate) of video and audio under configurable background workloads - speed of code-development tasks (make, git checkout, git merge, git grep) under configurable background workloads, plus responsiveness while one of these dev tasks is executed - minimum per-client bandwidth guaranteed to a set of clients doing configurable types of I/O - maximum per-client latency guaranteed to a set of clients doing configurable types of I/O - throughput with processes doing filesystem or raw I/O in parallel (figure of merit measured by many other suites too) - throughput with processes doing interleaved I/O, which mimics the typical I/O pattern of applications like qemu - efficiency of block layer and I/O schedulers in terms of maximum number of IOPS supported (this functionality makes it easy to profile the desired component of the block layer) See USAGE-INSTALLATION for all details. In particular, that file also contains a quick but complete example of use.
There is equivalence in basic commands but MPV is better maintained/tested.
mplayer -nosound -benchmark -vo gl foo.mkv
The exact equivalent is mpv --no-audio --untimed --vo=opengl-old foo.mkv.
Also, MPV supports properties like:
Dropped frames, e.g. Dropped: 4. Shows up only if the count is not 0. Can grow if the video framerate is higher than that of the display, or if video rendering is too slow. May also be incremented on "hiccups" and when the video frame couldn't be displayed on time. (vo-drop-frame-count property.) If the decoder drops frames, the number of decoder-dropped frames is appended to the display as well, e.g.: Dropped: 4/34. This happens only if decoder frame dropping is enabled with the --framedrop options. (drop-frame-count property.)
Here is an example of script that reds properties. https://github.com/Argon-/mpv-stats/
$ df -h
Filesystem Size Used Avail Use% Mounted on
dev 7.7G 0 7.7G 0% /dev
run 7.8G 2.1M 7.8G 1% /run
/dev/dm-0 468G 220G 225G 50% /
tmpfs 7.8G 209M 7.6G 3% /dev/shm
tmpfs 7.8G 0 7.8G 0% /sys/fs/cgroup
tmpfs 7.8G 46M 7.7G 1% /tmp
/dev/nvme0n1p1 599M 48M 552M 8% /boot/efi
/dev/loop0 55M 55M 0 100% /var/lib/snapd/snap/core18/1668
/dev/loop1 161M 161M 0 100% /var/lib/snapd/snap/gnome-3-28-1804/116
/dev/loop2 157M 157M 0 100% /var/lib/snapd/snap/gnome-3-28-1804/110
/dev/loop4 55M 55M 0 100% /var/lib/snapd/snap/core18/1288
/dev/loop3 92M 92M 0 100% /var/lib/snapd/snap/core/8592
/dev/loop5 256K 256K 0 100% /var/lib/snapd/snap/gtk2-common-themes/9
/dev/loop6 92M 92M 0 100% /var/lib/snapd/snap/core/8689
/dev/loop7 45M 45M 0 100% /var/lib/snapd/snap/gtk-common-themes/1353
/dev/loop8 45M 45M 0 100% /var/lib/snapd/snap/gtk-common-themes/1440
/dev/loop9 256K 256K 0 100% /var/lib/snapd/snap/gtk2-common-themes/5
tmpfs 1.6G 956K 1.6G 1% /run/user/1000
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
loop0 7:0 0 54.7M 1 loop /var/lib/snapd/snap/core18/1668
loop1 7:1 0 160.2M 1 loop /var/lib/snapd/snap/gnome-3-28-1804/116
loop2 7:2 0 156.7M 1 loop /var/lib/snapd/snap/gnome-3-28-1804/110
loop3 7:3 0 91.3M 1 loop /var/lib/snapd/snap/core/8592
loop4 7:4 0 54.6M 1 loop /var/lib/snapd/snap/core18/1288
loop5 7:5 0 132K 1 loop /var/lib/snapd/snap/gtk2-common-themes/9
loop6 7:6 0 91.4M 1 loop /var/lib/snapd/snap/core/8689
loop7 7:7 0 44.2M 1 loop /var/lib/snapd/snap/gtk-common-themes/135
loop8 7:8 0 44.9M 1 loop /var/lib/snapd/snap/gtk-common-themes/144
loop9 7:9 0 132K 1 loop /var/lib/snapd/snap/gtk2-common-themes/5
nvme0n1 259:0 0 477G 0 disk
├─nvme0n1p1 259:1 0 600M 0 part /boot/efi
└─nvme0n1p2 259:2 0 476.4G 0 part
└─luks-d57f1a76-74b2-4846-a9ee-7df99b00856a
254:0 0 476.4G 0 crypt /
$ lsblk --fs
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
loop0
squash 4.0 0 100% /var/lib/s
loop1
squash 4.0 0 100% /var/lib/s
loop2
squash 4.0 0 100% /var/lib/s
loop3
squash 4.0 0 100% /var/lib/s
loop4
squash 4.0 0 100% /var/lib/s
loop5
squash 4.0 0 100% /var/lib/s
loop6
squash 4.0 0 100% /var/lib/s
loop7
squash 4.0 0 100% /var/lib/s
loop8
squash 4.0 0 100% /var/lib/s
loop9
squash 4.0 0 100% /var/lib/s
nvme0n1
│
├─nvme0n1p1
│ vfat FAT32 B12F-419C 551.2M 8% /boot/efi
└─nvme0n1p2
crypto 1 d57f1a76-74b2-4846-a9ee-7df99b00856a
└─luks-d57f1a76-74b2-4846-a9ee-7df99b00856a
ext4 1.0 01657f93-ac1a-465b-8913-b526eb411b94 224.7G 47% /
$ sudo dmsetup ls --target crypt
luks-d57f1a76-74b2-4846-a9ee-7df99b00856a (254, 0)
$ sudo lvmdiskscan
/dev/nvme0n1 [ <476.94 GiB]
/dev/loop0 [ 54.64 MiB]
/dev/mapper/luks-d57f1a76-74b2-4846-a9ee-7df99b00856a [ 476.35 GiB]
/dev/nvme0n1p1 [ 600.00 MiB]
/dev/loop1 [ 160.15 MiB]
/dev/nvme0n1p2 [ 476.35 GiB]
/dev/loop2 [ <156.68 MiB]
/dev/loop3 [ 91.31 MiB]
/dev/loop4 [ 54.62 MiB]
/dev/loop6 [ <91.37 MiB]
/dev/loop7 [ <44.18 MiB]
/dev/loop8 [ 44.88 MiB]
1 disk
11 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
Trying to run:
$ ./run_multiple_benchmarks/test_responsiveness.sh
results in:
PART=/dev/root
which is obviously incorrect.
Anyway, I tried running the benchmark with the following set in ~/.S-config.sh
:
PART=/dev/dm-0
BACKING_DEVS=nvme0n1
HIGH_LEV_DEV=dm-0
which I'm not sure is correct... and commenting out the following line:
Line 97 in 34f9132
Results: results.tar.gz
.
I found an effect that I cannot explain.
As I read the documentation, replayed startup times should correlate with the startup times of the X applications:
"The startup benchmark exercises X applications, which must therefore
be installed and properly working. If this is a problem, run
replayed-startup instead (see the simple invocation examples
below). The latter usually provides accurate results, without
executing any X application."
On one NVMe SSD and one SATA SSD, both Samsung, I found lowered startup times (compared to the rest) for bfq in the replayed condition (for all three classes of applications) but not in the X application startup times. Is this a bug or could it have something to do with the SSD brand? I don't see it with a WD NVMe SSD.
My data from the NVMe Samsung SSD:
replayed_gnome_terminal_startup-time-table.txt (lowriter and xterm have the similar values):
Workload none bfq kyber
0r-seq 0.12725 0.13025 0.12925
10r-seq 2.2725 0.14875 2.22725
5r5w-seq 3.206 0.13975 3.0605
gnome_terminal_startup-time-table.txt (lowriter and xterm have the similar values):
Workload none mq-deadline kyber bfq
0r-seq 0.29275 0.292 0.29425 0.28575
10r-seq 0.29825 0.32775 0.33325 0.3475
5r5w-seq 0.31475 0.31025 0.304 0.316
On the WD NVMe SSD, the replayed condition does show a good correlation with the X application startup times but here I see that bfq does much better than average on 10r-seq but much worse than average on the 5r5w-seq.
replayed_gnome_terminal_startup-time-table.txt
Workload none bfq kyber mq-deadline
0r-seq 0.13875 0.174 0.164 0.16925
10r-seq 0.926 0.245 0.99825 0.982
5r5w-seq 0.9885 2.98925 0.9625 0.97775
gnome_terminal_startup-time-table.txt
Workload none mq-deadline kyber bfq
0r-seq 0.277 0.2845 0.29825 0.313
10r-seq 0.9695 0.953 0.975 0.389
5r5w-seq 0.9285 0.95275 1.05025 1.60125
Best,
Bob
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.