I added a new command to HashBackup to perform upload, download, and delete testing on destinations. To get the new version do: hb upgrade -p
To run the test, configure the destinations in dest.conf and run:
$ hb dest -c backupdir test
Specific destinations can also be listed to just test them. This test uses a single thread for all testing; the point is to test individual operations, not to see if a bunch of threads mask latency. Here’s a run from a small Vultr VM with Storj’s MT S3 Gateway, Amazon S3, Backblaze B2, and Google Cloud Storage using their S3 gateway:
[root@hbtest ~]# hb dest -c hb test
HashBackup #2567 Copyright 2009-2021 HashBackup, LLC
Using destinations in dest.conf
---------- Testing sjs3 ----------
1 KiB:
Round 0: up: 0.4s, 2.707 KiB/s down: 0.1s, 7.422 KiB/s del: 0.2s, 4.178 KiB/s
Round 1: up: 0.4s, 2.277 KiB/s down: 0.1s, 8.154 KiB/s del: 0.6s, 1.752 KiB/s
Round 2: up: 0.5s, 2.222 KiB/s down: 0.2s, 4.811 KiB/s del: 0.3s, 3.638 KiB/s
> Average: up: 0.4s, 2.383 KiB/s down: 0.2s, 6.448 KiB/s del: 0.4s, 2.765 KiB/s
4 KiB:
Round 0: up: 0.5s, 8.710 KiB/s down: 0.2s, 19.200 KiB/s del: 0.3s, 15.659 KiB/s
Round 1: up: 0.3s, 11.786 KiB/s down: 0.1s, 29.798 KiB/s del: 0.6s, 6.821 KiB/s
Round 2: up: 0.5s, 8.487 KiB/s down: 0.2s, 22.754 KiB/s del: 0.2s, 16.109 KiB/s
> Average: up: 0.4s, 9.449 KiB/s down: 0.2s, 23.149 KiB/s del: 0.4s, 11.008 KiB/s
16 KiB:
Round 0: up: 1.5s, 10.887 KiB/s down: 0.6s, 28.403 KiB/s del: 0.7s, 22.409 KiB/s
Round 1: up: 1.4s, 11.409 KiB/s down: 0.6s, 28.212 KiB/s del: 0.7s, 21.345 KiB/s
Round 2: up: 1.3s, 12.130 KiB/s down: 0.6s, 28.537 KiB/s del: 0.6s, 27.078 KiB/s
> Average: up: 1.4s, 11.453 KiB/s down: 0.6s, 28.383 KiB/s del: 0.7s, 23.364 KiB/s
256 KiB:
Round 0: up: 1.1s, 227.468 KiB/s down: 0.6s, 454.302 KiB/s del: 0.8s, 336.443 KiB/s
Round 1: up: 1.2s, 212.913 KiB/s down: 0.6s, 438.336 KiB/s del: 0.8s, 317.257 KiB/s
Round 2: up: 1.4s, 186.029 KiB/s down: 0.7s, 392.445 KiB/s del: 0.6s, 395.325 KiB/s
> Average: up: 1.2s, 207.347 KiB/s down: 0.6s, 426.702 KiB/s del: 0.7s, 346.666 KiB/s
1 MiB:
Round 0: up: 1.5s, 675.191 KiB/s down: 0.8s, 1.204694 MiB/s del: 1.0s, 1.047874 MiB/s
Round 1: up: 1.5s, 663.794 KiB/s down: 0.8s, 1.313229 MiB/s del: 0.8s, 1.309225 MiB/s
Round 2: up: 1.5s, 696.350 KiB/s down: 0.8s, 1.310164 MiB/s del: 0.7s, 1.444659 MiB/s
> Average: up: 1.5s, 678.179 KiB/s down: 0.8s, 1.273977 MiB/s del: 0.8s, 1.244643 MiB/s
4 MiB:
Round 0: up: 1.9s, 2.055211 MiB/s down: 1.0s, 3.832684 MiB/s del: 0.7s, 5.576562 MiB/s
Round 1: up: 1.9s, 2.069060 MiB/s down: 1.1s, 3.730988 MiB/s del: 0.6s, 6.707637 MiB/s
Round 2: up: 1.6s, 2.440236 MiB/s down: 1.0s, 3.859525 MiB/s del: 0.8s, 5.195851 MiB/s
> Average: up: 1.8s, 2.174424 MiB/s down: 1.1s, 3.806921 MiB/s del: 0.7s, 5.759628 MiB/s
16 MiB:
Round 0: up: 2.4s, 6.802658 MiB/s down: 1.5s, 10.322733 MiB/s del: 0.8s, 21.170543 MiB/s
Round 1: up: 1.9s, 8.425012 MiB/s down: 1.5s, 10.791809 MiB/s del: 0.5s, 29.120134 MiB/s
Round 2: up: 2.3s, 7.043987 MiB/s down: 1.5s, 10.391271 MiB/s del: 0.8s, 21.086010 MiB/s
> Average: up: 2.2s, 7.359063 MiB/s down: 1.5s, 10.497914 MiB/s del: 0.7s, 23.255678 MiB/s
64 MiB:
Round 0: up: 2.6s, 24.993283 MiB/s down: 2.4s, 26.805958 MiB/s del: 0.7s, 96.619087 MiB/s
Round 1: up: 3.2s, 19.931820 MiB/s down: 2.1s, 30.333866 MiB/s del: 0.8s, 78.024717 MiB/s
Round 2: up: 3.0s, 21.398371 MiB/s down: 2.1s, 30.186987 MiB/s del: 0.9s, 67.888598 MiB/s
> Average: up: 2.9s, 21.911515 MiB/s down: 2.2s, 29.013975 MiB/s del: 0.8s, 79.163219 MiB/s
Test complete
---------- Testing s3 ----------
1 KiB:
Round 0: up: 0.3s, 2.895 KiB/s down: 0.1s, 15.359 KiB/s del: 0.0s, 20.043 KiB/s
Round 1: up: 0.1s, 13.031 KiB/s down: 0.0s, 28.622 KiB/s del: 0.1s, 18.490 KiB/s
Round 2: up: 0.1s, 15.214 KiB/s down: 0.0s, 34.051 KiB/s del: 0.0s, 30.308 KiB/s
> Average: up: 0.2s, 6.149 KiB/s down: 0.0s, 23.181 KiB/s del: 0.0s, 21.903 KiB/s
4 KiB:
Round 0: up: 0.1s, 70.972 KiB/s down: 0.1s, 78.201 KiB/s del: 0.0s, 102.349 KiB/s
Round 1: up: 0.1s, 33.943 KiB/s down: 0.0s, 92.306 KiB/s del: 0.4s, 9.442 KiB/s
Round 2: up: 0.0s, 88.363 KiB/s down: 0.1s, 79.247 KiB/s del: 0.0s, 104.550 KiB/s
> Average: up: 0.1s, 54.676 KiB/s down: 0.0s, 82.782 KiB/s del: 0.2s, 23.953 KiB/s
16 KiB:
Round 0: up: 0.1s, 285.303 KiB/s down: 0.1s, 262.726 KiB/s del: 0.0s, 509.961 KiB/s
Round 1: up: 0.1s, 288.009 KiB/s down: 0.0s, 464.846 KiB/s del: 0.0s, 428.449 KiB/s
Round 2: up: 0.0s, 371.005 KiB/s down: 0.0s, 569.738 KiB/s del: 0.0s, 475.454 KiB/s
> Average: up: 0.1s, 310.156 KiB/s down: 0.0s, 388.969 KiB/s del: 0.0s, 468.883 KiB/s
256 KiB:
Round 0: up: 0.1s, 1.962494 MiB/s down: 0.1s, 3.602784 MiB/s del: 0.0s, 6.195171 MiB/s
Round 1: up: 0.1s, 1.715585 MiB/s down: 0.0s, 6.467821 MiB/s del: 0.0s, 8.378018 MiB/s
Round 2: up: 0.1s, 2.929155 MiB/s down: 0.0s, 7.866818 MiB/s del: 0.0s, 7.375716 MiB/s
> Average: up: 0.1s, 2.092280 MiB/s down: 0.0s, 5.363935 MiB/s del: 0.0s, 7.205371 MiB/s
1 MiB:
Round 0: up: 0.1s, 8.883433 MiB/s down: 0.1s, 15.963766 MiB/s del: 0.0s, 29.872045 MiB/s
Round 1: up: 0.1s, 9.825994 MiB/s down: 0.0s, 23.981429 MiB/s del: 0.0s, 26.632531 MiB/s
Round 2: up: 0.1s, 11.896237 MiB/s down: 0.0s, 26.248687 MiB/s del: 0.0s, 31.429543 MiB/s
> Average: up: 0.1s, 10.053614 MiB/s down: 0.0s, 21.061805 MiB/s del: 0.0s, 29.171138 MiB/s
4 MiB:
Round 0: up: 0.2s, 25.943172 MiB/s down: 0.1s, 47.268418 MiB/s del: 0.0s, 129.082317 MiB/s
Round 1: up: 0.1s, 31.802798 MiB/s down: 0.1s, 58.338692 MiB/s del: 0.0s, 127.477726 MiB/s
Round 2: up: 0.2s, 25.786307 MiB/s down: 0.1s, 59.137590 MiB/s del: 0.0s, 139.145713 MiB/s
> Average: up: 0.1s, 27.581177 MiB/s down: 0.1s, 54.341156 MiB/s del: 0.0s, 131.704800 MiB/s
16 MiB:
Round 0: up: 0.3s, 50.277775 MiB/s down: 0.2s, 84.774945 MiB/s del: 0.0s, 533.634950 MiB/s
Round 1: up: 0.3s, 47.636630 MiB/s down: 0.2s, 74.985993 MiB/s del: 0.0s, 536.407456 MiB/s
Round 2: up: 0.3s, 50.470809 MiB/s down: 0.2s, 66.961883 MiB/s del: 0.0s, 528.541104 MiB/s
> Average: up: 0.3s, 49.427314 MiB/s down: 0.2s, 74.877143 MiB/s del: 0.0s, 532.841212 MiB/s
64 MiB:
Round 0: up: 0.6s, 114.027311 MiB/s down: 0.4s, 174.476303 MiB/s del: 0.0s, 2.091279687 GiB/s
Round 1: up: 0.6s, 99.738669 MiB/s down: 0.5s, 119.034149 MiB/s del: 0.0s, 1.912887384 GiB/s
Round 2: up: 0.7s, 88.582912 MiB/s down: 0.4s, 177.090087 MiB/s del: 0.0s, 1.907112094 GiB/s
> Average: up: 0.6s, 99.717834 MiB/s down: 0.4s, 151.674246 MiB/s del: 0.0s, 1.966827394 GiB/s
Test complete
---------- Testing b2 ----------
1 KiB:
Round 0: up: 0.6s, 1.632 KiB/s down: 0.3s, 3.369 KiB/s del: 0.1s, 7.010 KiB/s
Round 1: up: 0.1s, 10.713 KiB/s down: 0.1s, 14.378 KiB/s del: 0.1s, 6.756 KiB/s
Round 2: up: 0.1s, 9.307 KiB/s down: 0.1s, 13.157 KiB/s del: 0.2s, 6.109 KiB/s
> Average: up: 0.3s, 3.688 KiB/s down: 0.1s, 6.782 KiB/s del: 0.2s, 6.603 KiB/s
4 KiB:
Round 0: up: 0.1s, 47.491 KiB/s down: 0.1s, 58.588 KiB/s del: 0.1s, 27.429 KiB/s
Round 1: up: 0.1s, 55.791 KiB/s down: 0.1s, 36.254 KiB/s del: 0.1s, 29.721 KiB/s
Round 2: up: 0.1s, 54.227 KiB/s down: 0.1s, 57.475 KiB/s del: 0.5s, 8.558 KiB/s
> Average: up: 0.1s, 52.245 KiB/s down: 0.1s, 48.348 KiB/s del: 0.2s, 16.047 KiB/s
16 KiB:
Round 0: up: 0.1s, 124.974 KiB/s down: 0.1s, 228.552 KiB/s del: 0.1s, 115.020 KiB/s
Round 1: up: 0.2s, 102.952 KiB/s down: 0.1s, 202.716 KiB/s del: 0.2s, 104.260 KiB/s
Round 2: up: 0.1s, 114.477 KiB/s down: 0.1s, 192.710 KiB/s del: 0.2s, 103.293 KiB/s
> Average: up: 0.1s, 113.420 KiB/s down: 0.1s, 206.932 KiB/s del: 0.1s, 107.270 KiB/s
256 KiB:
Round 0: up: 0.3s, 732.706 KiB/s down: 0.2s, 1.071789 MiB/s del: 0.1s, 1.676716 MiB/s
Round 1: up: 0.2s, 1.278517 MiB/s down: 0.1s, 1.832967 MiB/s del: 0.2s, 1.327880 MiB/s
Round 2: up: 0.2s, 1.628537 MiB/s down: 0.1s, 2.523242 MiB/s del: 0.2s, 1.459682 MiB/s
> Average: up: 0.2s, 1.073820 MiB/s down: 0.2s, 1.600086 MiB/s del: 0.2s, 1.474517 MiB/s
1 MiB:
Round 0: up: 0.2s, 4.177527 MiB/s down: 0.2s, 4.659028 MiB/s del: 0.1s, 6.964702 MiB/s
Round 1: up: 0.1s, 6.996722 MiB/s down: 0.1s, 7.483574 MiB/s del: 0.2s, 6.141370 MiB/s
Round 2: up: 0.2s, 6.416095 MiB/s down: 0.3s, 3.674148 MiB/s del: 0.1s, 6.958221 MiB/s
> Average: up: 0.2s, 5.574569 MiB/s down: 0.2s, 4.835317 MiB/s del: 0.2s, 6.664798 MiB/s
4 MiB:
Round 0: up: 0.3s, 13.005170 MiB/s down: 0.3s, 14.012869 MiB/s del: 0.1s, 26.978004 MiB/s
Round 1: up: 0.2s, 18.244433 MiB/s down: 0.3s, 14.592259 MiB/s del: 0.1s, 30.275040 MiB/s
Round 2: up: 0.2s, 18.937427 MiB/s down: 0.3s, 14.830360 MiB/s del: 0.2s, 24.934371 MiB/s
> Average: up: 0.2s, 16.259350 MiB/s down: 0.3s, 14.470265 MiB/s del: 0.1s, 27.222483 MiB/s
16 MiB:
Round 0: up: 0.6s, 26.142590 MiB/s down: 0.9s, 18.781897 MiB/s del: 0.2s, 106.328421 MiB/s
Round 1: up: 0.6s, 25.526316 MiB/s down: 0.8s, 19.362094 MiB/s del: 0.1s, 112.098273 MiB/s
Round 2: up: 0.6s, 27.248557 MiB/s down: 0.9s, 18.342877 MiB/s del: 0.1s, 109.495415 MiB/s
> Average: up: 0.6s, 26.286688 MiB/s down: 0.9s, 18.819734 MiB/s del: 0.1s, 109.256304 MiB/s
64 MiB:
Round 0: up: 2.6s, 24.949625 MiB/s down: 1.4s, 44.722725 MiB/s del: 0.1s, 441.513672 MiB/s
Round 1: up: 2.3s, 28.404804 MiB/s down: 1.4s, 47.183331 MiB/s del: 0.1s, 449.441129 MiB/s
Round 2: up: 2.0s, 32.758203 MiB/s down: 1.4s, 45.961158 MiB/s del: 0.2s, 415.910755 MiB/s
> Average: up: 2.3s, 28.351963 MiB/s down: 1.4s, 45.933771 MiB/s del: 0.1s, 435.143147 MiB/s
Test complete
---------- Testing gs ----------
1 KiB:
Round 0: up: 0.3s, 3.620 KiB/s down: 0.1s, 8.228 KiB/s del: 0.2s, 6.412 KiB/s
Round 1: up: 0.2s, 6.374 KiB/s down: 0.1s, 8.622 KiB/s del: 0.1s, 6.676 KiB/s
Round 2: up: 0.4s, 2.709 KiB/s down: 0.1s, 6.962 KiB/s del: 0.2s, 6.622 KiB/s
> Average: up: 0.3s, 3.739 KiB/s down: 0.1s, 7.871 KiB/s del: 0.2s, 6.568 KiB/s
4 KiB:
Round 0: up: 0.2s, 22.057 KiB/s down: 0.1s, 34.261 KiB/s del: 0.2s, 25.786 KiB/s
Round 1: up: 0.2s, 25.325 KiB/s down: 0.1s, 33.979 KiB/s del: 0.2s, 25.646 KiB/s
Round 2: up: 0.2s, 23.270 KiB/s down: 0.1s, 35.244 KiB/s del: 0.2s, 26.625 KiB/s
> Average: up: 0.2s, 23.474 KiB/s down: 0.1s, 34.486 KiB/s del: 0.2s, 26.012 KiB/s
16 KiB:
Round 0: up: 0.2s, 90.835 KiB/s down: 0.1s, 137.327 KiB/s del: 0.2s, 105.143 KiB/s
Round 1: up: 0.1s, 132.469 KiB/s down: 0.1s, 146.978 KiB/s del: 0.1s, 108.598 KiB/s
Round 2: up: 0.2s, 100.099 KiB/s down: 0.1s, 136.586 KiB/s del: 0.2s, 104.986 KiB/s
> Average: up: 0.2s, 105.086 KiB/s down: 0.1s, 140.141 KiB/s del: 0.2s, 106.216 KiB/s
256 KiB:
Round 0: up: 0.2s, 1.121066 MiB/s down: 0.1s, 2.396017 MiB/s del: 0.1s, 1.698036 MiB/s
Round 1: up: 0.2s, 1.099685 MiB/s down: 0.1s, 2.326834 MiB/s del: 0.1s, 1.695386 MiB/s
Round 2: up: 0.2s, 1.044684 MiB/s down: 0.1s, 2.740093 MiB/s del: 0.2s, 1.505852 MiB/s
> Average: up: 0.2s, 1.087513 MiB/s down: 0.1s, 2.475086 MiB/s del: 0.2s, 1.627933 MiB/s
1 MiB:
Round 0: up: 0.2s, 4.115500 MiB/s down: 0.1s, 9.266190 MiB/s del: 0.2s, 6.271753 MiB/s
Round 1: up: 0.2s, 4.372369 MiB/s down: 0.1s, 8.139601 MiB/s del: 0.2s, 6.288246 MiB/s
Round 2: up: 0.3s, 3.042409 MiB/s down: 0.2s, 4.031639 MiB/s del: 0.2s, 4.541512 MiB/s
> Average: up: 0.3s, 3.748221 MiB/s down: 0.2s, 6.265489 MiB/s del: 0.2s, 5.569346 MiB/s
4 MiB:
Round 0: up: 2.5s, 1.572512 MiB/s down: 0.2s, 22.024136 MiB/s del: 0.2s, 25.313898 MiB/s
Round 1: up: 0.5s, 7.325633 MiB/s down: 0.2s, 22.963173 MiB/s del: 0.1s, 27.784530 MiB/s
Round 2: up: 0.4s, 9.728974 MiB/s down: 0.2s, 20.401180 MiB/s del: 0.2s, 23.157118 MiB/s
> Average: up: 1.2s, 3.427718 MiB/s down: 0.2s, 21.743937 MiB/s del: 0.2s, 25.278376 MiB/s
16 MiB:
Round 0: up: 0.6s, 26.697733 MiB/s down: 0.4s, 41.701743 MiB/s del: 0.2s, 105.310931 MiB/s
Round 1: up: 0.5s, 31.094341 MiB/s down: 0.3s, 56.866618 MiB/s del: 0.2s, 104.422290 MiB/s
Round 2: up: 0.5s, 35.168471 MiB/s down: 0.3s, 48.127999 MiB/s del: 0.2s, 105.386674 MiB/s
> Average: up: 0.5s, 30.596286 MiB/s down: 0.3s, 48.121074 MiB/s del: 0.2s, 105.038134 MiB/s
64 MiB:
Round 0: up: 0.6s, 101.201155 MiB/s down: 0.4s, 146.064032 MiB/s del: 0.2s, 402.406710 MiB/s
Round 1: up: 0.7s, 96.182743 MiB/s down: 0.5s, 119.474566 MiB/s del: 0.2s, 419.873235 MiB/s
Round 2: up: 0.8s, 85.246020 MiB/s down: 0.4s, 154.944588 MiB/s del: 0.2s, 424.879479 MiB/s
> Average: up: 0.7s, 93.723820 MiB/s down: 0.5s, 138.438868 MiB/s del: 0.2s, 415.493598 MiB/s
Test complete
[root@hbtest ~]#
For things like delete that happen quickly or are listed as 0.0s, you can use the following bytes/s timing to get an idea of how fast it really was.