root@adm61:/home/avn# dd if=/dev/vms4/vm-112-disk-0 of=/dev/null bs=1M status=progress
53406072832 bytes (53 GB, 50 GiB) copied, 146 s, 366 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 149.697 s, 359 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-114-disk-0 of=/dev/null bs=1M status=progress
53540290560 bytes (54 GB, 50 GiB) copied, 174 s, 308 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 177.612 s, 302 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-200-disk-0 of=/dev/null bs=1M status=progress
53655633920 bytes (54 GB, 50 GiB) copied, 152 s, 353 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 155.575 s, 345 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-212-disk-1 of=/dev/null bs=1M status=progress
53519319040 bytes (54 GB, 50 GiB) copied, 137 s, 391 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 140.699 s, 382 MB/s
root@adm61:/home/avn# dd if=/dev/vms2/vm-267-disk-0 of=/dev/null bs=1M status=progress
53473181696 bytes (53 GB, 50 GiB) copied, 147 s, 364 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 151.318 s, 355 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-313-disk-0 bs=1M status=progress | cat >/dev/null
53364129792 bytes (53 GB, 50 GiB) copied, 176 s, 303 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 180.358 s, 298 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-320-disk-0 bs=1M status=progress | gzip >/dev/null
2753560576 bytes (2.8 GB, 2.6 GiB) copied, 74 s, 37.2 MB/s^C
2650+0 records in
2649+0 records out
2777677824 bytes (2.8 GB, 2.6 GiB) copied, 74.9503 s, 37.1 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-342-disk-0 bs=1M status=progress | zstd >/dev/null
53457453056 bytes (53 GB, 50 GiB) copied, 278 s, 192 MB/s
51200+0 records in
51200+0 records out
53687091200 bytes (54 GB, 50 GiB) copied, 282.061 s, 190 MB/s
root@adm61:/home/avn# dd if=/dev/vms5/vm-190-disk-0 bs=1M status=progress | zstd --threads=28 >/dev/null
64290291712 bytes (64 GB, 60 GiB) copied, 320 s, 201 MB/s
61440+0 records in
61440+0 records out
64424509440 bytes (64 GB, 60 GiB) copied, 324.725 s, 198 MB/s
root@adm61:/home/avn# dd if=/dev/vms2/vm-120-disk-0 bs=1M status=progress | lzop >/dev/null
33877393408 bytes (34 GB, 32 GiB) copied, 78 s, 434 MB/s
32768+0 records in
32768+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 81.0532 s, 424 MB/s
root@adm61:/home/avn# dd if=/dev/vms2/vm-124-disk-0 bs=1M status=progress | pigz >/dev/null
34199306240 bytes (34 GB, 32 GiB) copied, 128 s, 267 MB/s
32768+0 records in
32768+0 records out
34359738368 bytes (34 GB, 32 GiB) copied, 130.772 s, 263 MB/s
Summary:
Read from disk: ~300-400 MB/s (seen results up to 700 MB/s, not shown here)
Read and pipe to cat: ~300 MB/s
Read and pipe to gzip: ~37 MB/s (one thread)
Read and pipe to zstd: ~200 MB/s (no matter one thread or many)
Read and pipe to lzop: >400 MB/s
Read and pipe to pigz: ~260 MB/s
All tests was done on real VM disks. Disks belong to unused VMs and each disk was tested only once, so there's no caching involved.