Benchmarks
These benchmarks are designed to give a feel for how HashBackup performs in different situations. Many of these tests are not "real world" tests, but are designed to be easily compared with other backup software to test limits, memory usage, disk usage, deduplication effectiveness, and/or raw performance. More benchmarks will be added over time.
Backup 16 x 8M files individually & combined to measure deduplication efficiency
Summary: HashBackup deduplicates 96% of the combined file
[jim@mb /]$ mkdir /hb
[jim@mb /]$ cd /hb
NOTE: Mac OSX requires 1m rather than 1M for the dd command
[jim@mb hb]$ for i in {00..15}; do dd if=/dev/urandom of=$i bs=1M count=8; done
8+0 records in
8+0 records out
8388608 bytes transferred in 0.915088 secs (9166997 bytes/sec)
8+0 records in
8+0 records out
8388608 bytes transferred in 0.912198 secs (9196038 bytes/sec)
[jim@mb hb]$ hb init -c backup
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Permissions set for owner access only
Created key file /hb/backup/key.conf
Key file set to read-only
Setting include/exclude defaults: /hb/backup/inex.conf
VERY IMPORTANT: your backup is encrypted and can only be accessed with
the encryption key, stored in the file:
/hb/backup/key.conf
You MUST make copies of this file and store them in secure locations,
separate from your computer and backup data. If your hard drive fails,
you will need this key to restore your files. If you have setup remote
destinations in dest.conf, that file should be copied too.
Backup directory initialized
[jim@mb hb]$ hb backup -c backup -D1g [0-9]*
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Backup start: 2020-05-24 10:46:13
Copied HB program to /hb/backup/hb#2490
This is backup version: 0
Dedup enabled, 0% of current size, 0% of max size
/
/hb
/hb/0
/hb/1
/hb/10
/hb/11
/hb/12
/hb/13
/hb/14
/hb/15
/hb/2
/hb/3
/hb/4
/hb/5
/hb/6
/hb/7
/hb/8
/hb/9
/hb/backup
/hb/backup/inex.conf
Time: 2.8s
CPU: 3.4s, 120%
Mem: 84 MB
Checked: 20 paths, 134218250 bytes, 134 MB
Saved: 20 paths, 134218250 bytes, 134 MB
Excluded: 0
Dupbytes: 0
Space: +134 MB, 134 MB total
No errors
No dedup occurs above on 16 files of random data, which is expected. Now combine the 16 files into 1 large file and back it up to see how well it is deduplicated.
[jim@mb hb]$ cat [0-9]* >combined
[jim@mb hb]$ hb backup -c backup -D1g combined
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Backup start: 2020-05-24 10:46:40
This is backup version: 1
Dedup enabled, 0% of current size, 0% of max size
/
/hb
/hb/backup
/hb/combined
Time: 1.8s
CPU: 1.5s, 82%
Mem: 78 MB
Checked: 5 paths, 134218250 bytes, 134 MB
Saved: 4 paths, 134217728 bytes, 134 MB
Excluded: 0
Dupbytes: 129038102, 129 MB, 96% <----- 96% of new data was deduped
Compression: 96%, 25.9:1
Efficiency: 82.48 MB reduced/cpusec
Space: +5.1 MB, 139 MB total
No errors
Backup 100 x 1M files individually & combined to measure deduplication efficiency
This test is a bit harder than the previous test of 8MB files because the files are now only 1MB. Many backup programs are not able to dedup this data because they use a large block size, which reduces deduplication. In this test, the combined file is backed up first, then the individual files.
Summary: HashBackup deduplicates 67% of the individual file data
[jim@mb hb]$ rm -rf /hb/*
[jim@mb hb]$ for i in {00..100}; do dd if=/dev/urandom of=$i bs=1M count=1; done
1+0 records in
1+0 records out
1048576 bytes transferred in 0.115422 secs (9084714 bytes/sec)
...
1+0 records in
1+0 records out
1048576 bytes transferred in 0.116055 secs (9035163 bytes/sec)
[jim@mb hb]$ cat [0-9]* >combined
[jim@mb hb]$ hb init -c backup
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Permissions set for owner access only
Created key file /hb/backup/key.conf
Key file set to read-only
Setting include/exclude defaults: /hb/backup/inex.conf
VERY IMPORTANT: your backup is encrypted and can only be accessed with
the encryption key, stored in the file:
/hb/backup/key.conf
You MUST make copies of this file and store them in secure locations,
separate from your computer and backup data. If your hard drive fails,
you will need this key to restore your files. If you have setup remote
destinations in dest.conf, that file should be copied too.
Backup directory initialized`
[jim@mb hb]$ hb backup -c backup -D1g combined
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Backup start: 2020-05-24 10:55:47
Copied HB program to /hb/backup/hb#2490
This is backup version: 0
Dedup enabled, 0% of current size, 0% of max size
/
/hb
/hb/backup
/hb/backup/inex.conf
/hb/combined
Time: 2.2s
CPU: 2.7s, 123%
Mem: 83 MB
Checked: 5 paths, 105906698 bytes, 105 MB
Saved: 5 paths, 105906698 bytes, 105 MB
Excluded: 0
Dupbytes: 0
Space: +105 MB, 106 MB total
No errors
[jim@mb hb]$ hb backup -c backup -D1g [0-9]*
HashBackup #2490 Copyright 2009-2020 HashBackup, LLC
Backup directory: /hb/backup
Backup start: 2020-05-24 10:56:09
This is backup version: 1
Dedup enabled, 0% of current size, 0% of max size
/
/hb
/hb/0
/hb/1
...
/hb/98
/hb/99
/hb/backup
Time: 1.6s
CPU: 1.7s, 104%
Mem: 77 MB
Checked: 105 paths, 105906698 bytes, 105 MB
Saved: 104 paths, 105906176 bytes, 105 MB
Excluded: 0
Dupbytes: 71054149, 71 MB, 67%
Compression: 67%, 3.0:1 <------67% is deduplicated
Efficiency: 39.86 MB reduced/cpusec
Space: +34 MB, 140 MB total
No errors
Backup 1M zero-length files in a single directory
Summary: 3m 14s to backup 1M zero-length files, using 113MB of RAM and creating a backup database of around 118MB.
[jim@ms ~]$ /usr/bin/time -l hb backup -c hb bigdir -v0
HashBackup #2461 Copyright 2009-2019 HashBackup, LLC
Backup directory: /Users/jim/hb
Backup start: 2019-12-25 13:51:01
Copied HB program to /Users/jim/hb/hb#2461
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 194.3s, 3m 14s
CPU: 183.4s, 3m 3s, 94%
Mem: 113 MB
Checked: 1000006 paths, 522 bytes, 522 bytes
Saved: 1000006 paths, 522 bytes, 522 bytes
Excluded: 0
Dupbytes: 0
Compression: 47%, 1.9:1
Efficiency: 0.00 MB reduced/cpusec
Space: +272 bytes, 147 KB total
No errors
194.60 real 117.94 user 65.97 sys
113348608 maximum resident set size
67448 page reclaims
69712 block input operations
53 block output operations
69823 voluntary context switches
540 involuntary context switches
[jim@ms ~]$ ls -l hb
total 270584
-rw-r--r-- 1 jim staff 320 Dec 25 13:54 arc.0.0
-rw-r--r-- 1 jim staff 282097 Dec 25 13:51 cacerts.crt
-rw-r--r-- 1 jim staff 36864 Dec 25 13:51 dest.db
-rw-r--r-- 1 jim staff 3146512 Dec 25 13:54 hash.db
-rwxr-xr-x 1 jim staff 17168072 Dec 25 13:50 hb#2461
-rw-r--r-- 1 jim staff 117882880 Dec 25 13:54 hb.db
-rw-r--r-- 1 jim staff 6 Dec 25 13:51 hb.lock
-rw-r--r-- 1 jim staff 522 Dec 25 13:49 inex.conf
-r-------- 1 jim staff 338 Dec 25 13:49 key.conf
drwxr-xr-x 3 jim staff 102 Dec 25 13:54 logs
Backup 1M zero-length files in one directory using 8 shards
This is similar to the previous test, but uses shards to run 8
parallel backups. This system is a 4-core (8 hyperthread) Intel i7
Mac Mini. The -p0
backup option is used to disable threading in
each backup process since this is handled via sharding. Sharding is
transparent in HashBackup after it is enabled with the init command.
HashBackup evenly divides the 1M files in a large directory between 8 backup processes. This division of work is stable, even when files are added or deleted, so that incremental backups work as expected.
Summary: 57 seconds to save 1M empty files using 8 parallel backup processes. Each process used around 80MB of RAM, or 640MB altogether. Each backup database is around 15MB, or 120MB altogether, similar to the non-sharded backup.
Note: A similar test with 4 shards took 69 seconds, with each process using 104MB of RAM, or 416MB altogether.
[jim@ms ~]$ hb init -c hb --shards 8
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb
Permissions set for owner access only
Created key file /Users/jim/hb/key.conf
Key file set to read-only
Setting include/exclude defaults: /Users/jim/hb/inex.conf
Initializing shards
Shards 1-8 initialized
VERY IMPORTANT: your backup is encrypted and can only be accessed with
the encryption key, stored in the file:
/Users/jim/hb/key.conf
You MUST make copies of this file and store them in secure locations,
separate from your computer and backup data. If your hard drive fails,
you will need this key to restore your files. If you have setup remote
destinations in dest.conf, that file should be copied too.
Backup directory initialized
[jim@ms ~]$ /usr/bin/time -l hb backup -c hb bigdir -v0 -p0
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Shard output: /Users/jim/hb/sout/backup.1
Start shard #1: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s1
Start shard #2: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s2
Start shard #3: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s3
Start shard #4: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s4
Start shard #5: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s5
Start shard #6: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s6
Start shard #7: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s7
Start shard #8: hb backup bigdir -v0 -p0 -c /Users/jim/hb/s8
--------
Shard #1
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s1
Shard #1, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.7s
CPU: 46.9s, 84%
Mem: 81 MB
Checked: 124816 paths, 0 bytes, 0 bytes
Saved: 124816 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #1 successful
--------
Shard #2
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s2
Shard #2, 12% of files
Backup start: 2021-12-08 17:35:09
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.2s
CPU: 46.8s, 84%
Mem: 81 MB
Checked: 124829 paths, 0 bytes, 0 bytes
Saved: 124829 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #2 successful
--------
Shard #3
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s3
Shard #3, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.7s
CPU: 46.8s, 84%
Mem: 81 MB
Checked: 124764 paths, 0 bytes, 0 bytes
Saved: 124764 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #3 successful
--------
Shard #4
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s4
Shard #4, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.8s
CPU: 47.0s, 84%
Mem: 81 MB
Checked: 125700 paths, 0 bytes, 0 bytes
Saved: 125700 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #4 successful
--------
Shard #5
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s5
Shard #5, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.6s
CPU: 46.9s, 84%
Mem: 81 MB
Checked: 125135 paths, 0 bytes, 0 bytes
Saved: 125135 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #5 successful
--------
Shard #6
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s6
Shard #6, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.7s
CPU: 47.0s, 84%
Mem: 81 MB
Checked: 125306 paths, 522 bytes, 522 bytes
Saved: 125306 paths, 522 bytes, 522 bytes
Excluded: 0
Dupbytes: 0
Compression: 47%, 1.9:1
Efficiency: 0.00 MB reduced/cpusec
Space: +272 bytes, 147 KB total
No errors
Shard #6 successful
--------
Shard #7
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s7
Shard #7, 12% of files
Backup start: 2021-12-08 17:35:08
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.6s
CPU: 46.9s, 84%
Mem: 81 MB
Checked: 124901 paths, 0 bytes, 0 bytes
Saved: 124901 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #7 successful
--------
Shard #8
--------
HashBackup #2525 Copyright 2009-2021 HashBackup, LLC
Backup directory: /Users/jim/hb/s8
Shard #8, 12% of files
Backup start: 2021-12-08 17:35:09
Using destinations in dest.conf
This is backup version: 0
Dedup not enabled; use -Dmemsize to enable
Backup started
Time: 55.2s
CPU: 46.7s, 84%
Mem: 81 MB
Checked: 124583 paths, 0 bytes, 0 bytes
Saved: 124583 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Shard #8 successful
Shard summary for backup: 8 worked, 0 failed
57.02 real 273.38 user 105.61 sys
81715200 maximum resident set size
0 average shared memory size
0 average unshared data size
0 average unshared stack size
308445 page reclaims
847 page faults
0 swaps
69784 block input operations
44 block output operations
0 messages sent
0 messages received
0 signals received
245937 voluntary context switches
915154 involuntary context switches
[jim@ms ~]$ du -ksc hb/*
276 hb/cacerts.crt
4 hb/dest.conf
3076 hb/hash.db
17244 hb/hb#2525
144 hb/hb.db
4 hb/hb.lock
4 hb/inex.conf
4 hb/key.conf
12 hb/logs
17468 hb/s1
17468 hb/s2
17460 hb/s3
17564 hb/s4
17500 hb/s5
17536 hb/s6
17492 hb/s7
17444 hb/s8
32 hb/sout
160732 total
[jim@ms ~]$ ls -l hb/s1
total 34936
lrwxr-xr-x 1 jim staff 14 Dec 8 17:30 cacerts.crt -> ../cacerts.crt
lrwxr-xr-x 1 jim staff 12 Dec 8 17:30 dest.conf -> ../dest.conf
-rw-r--r-- 1 jim staff 36864 Dec 8 17:35 dest.db
-rw-r--r-- 1 jim staff 3146512 Dec 8 17:36 hash.db
-rw-r--r-- 1 jim staff 14680064 Dec 8 17:36 hb.db
-rw-r--r-- 1 jim staff 6 Dec 8 17:35 hb.lock
lrwxr-xr-x 1 jim staff 12 Dec 8 17:30 inex.conf -> ../inex.conf
lrwxr-xr-x 1 jim staff 11 Dec 8 17:30 key.conf -> ../key.conf
Backup 2.5 million 100-byte files then read 30 random files via FUSE (hb mount)
Summary: randomly accessing 30 100-byte files from a 2.5M file backup through an HB FUSE mount uses less than 100MB of RAM, downloads 30MB, takes 0.25 seconds on average per file (max 1.3 seconds) to a remote Linode ssh server, and takes 0.5 seconds on average per file (max 5 seconds) to Backblaze B2.
A Python script creates 5 directories with 500000 100-byte files in
each - 2.5M files. (Thanks to @bowensong on GitHub for the test
scripts!) This is backed up with HashBackup to an SSH server, with
cache-size-limit set
to 0 so that all backup data is remote. Then
hb mount
is used to create a FUSE local directory of the backup. 30
files are randomly accessed via the FUSE mount. The Python scripts
are attached at the bottom of the page. This test was run on a 2GB
single-CPU VM with 50GB SSD at Vultr in Atlanta, with the remote SSH
server located at Linode in New Jersey. Ping time between the two
sites was about 19ms.
This test can be somewhat difficult to setup because the Linux ext4
filesystem accomodates ~60K files per GB of disk space. To get enough
inodes for 1M small files requires ~17GB of disk space, or use mkfs -i
to create more inodes. This test was reduced from the original 2M
files per directory (10M total) to 500K per directory (2.5M total) for
that reason. For HashBackup, performance would be similar regardless
of the number of files in the backup since it only downloads the data
required from the remote for each file rather than entire arc files.
[root@hbfuse ~]# time python3 gen.py -d 5 -f 500000 -s 100 -p ~/bigdir
real 2m44.867s
user 0m26.339s
sys 1m29.954s
[root@hbfuse ~]# hb init -c hb
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Permissions set for owner access only
Created key file /root/hb/key.conf
Key file set to read-only
Setting include/exclude defaults: /root/hb/inex.conf
VERY IMPORTANT: your backup is encrypted and can only be accessed with
the encryption key, stored in the file:
/root/hb/key.conf
You MUST make copies of this file and store them in secure locations,
separate from your computer and backup data. If your hard drive fails,
you will need this key to restore your files. If you have setup remote
destinations in dest.conf, that file should be copied too.
Backup directory initialized
[root@hbfuse ~]# cat dest.conf
destname linode
type ssh
host linode
dir hbfuse
[root@hbfuse ~]# cp dest.conf hb
[root@hbfuse ~]# hb config -c hb cache-size-limit 0
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Current config version: 0
Set cache-size-limit to 0 (was -1) for future backups
[root@hbfuse ~]# hb config -c hb dedup-mem 1g
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Current config version: 0
Set dedup-mem to 1g (was 0) for future backups
[root@hbfuse ~]# /usr/bin/time -v hb backup -c hb bigdir -v1
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Backup start: 2020-02-21 20:40:22
Using destinations in dest.conf
Increased cache to 220 MB
Copied HB program to /root/hb/hb#2488
This is backup version: 0
Dedup enabled, 0% of current size, 0% of max size
Backing up: /root/bigdir
Copied arc.0.0 to linode (100 MB 3s 30 MB/s)
Backing up: /root/hb/inex.conf
Copied arc.0.1 to linode (100 MB 3s 30 MB/s)
Copied arc.0.2 to linode (48 MB 1s 30 MB/s)
Writing hb.db.0
Waiting for destinations: linode
Copied hb.db.0 to linode (207 MB 5s 38 MB/s)
Copied dest.db to linode (3.6 MB 0s 16 MB/s)
Time: 955.9s, 15m 55s
CPU: 632.1s, 10m 32s, 66%
Wait: 18.9s
Mem: 144 MB
Checked: 2500010 paths, 250000104 bytes, 250 MB
Saved: 2500010 paths, 250000104 bytes, 250 MB
Excluded: 0
Dupbytes: 0
Space: +250 MB, 250 MB total
No errors
Command being timed: "hb backup -c hb bigdir -v1"
User time (seconds): 483.33
System time (seconds): 162.44
Percent of CPU this job got: 66%
Elapsed (wall clock) time (h:mm:ss or m:ss): 16:14.97
Maximum resident set size (kbytes): 140752
Major (requiring I/O) page faults: 21
Minor (reclaiming a frame) page faults: 224954
Voluntary context switches: 2555879
Involuntary context switches: 389926
File system inputs: 24846808
File system outputs: 2320032
Exit status: 0
[root@hbfuse ~]# /usr/bin/time -v hb mount -c hb mnt
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Mounting backup at: /root/mnt
Unmount with: fusermount -u /root/mnt
Using destinations in dest.conf
Increased cache to 220 MB
Backup mounted in foreground; use Ctrl-\ to abort, followed by unmount command listed above
NOTE: see below for random read test results from mount. The
following stats are for the hb mount command
^\
Command terminated by signal 3
Command being timed: "hb mount -c hb mnt"
User time (seconds): 0.75
System time (seconds): 0.56
Percent of CPU this job got: 3%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:38.27
Maximum resident set size (kbytes): 72808
Major (requiring I/O) page faults: 2
Minor (reclaiming a frame) page faults: 71068
Voluntary context switches: 1854
Involuntary context switches: 70
File system inputs: 1224
File system outputs: 64928
Exit status: 0
[root@hbfuse ~]# umount mnt
In another window, run the random read test while mount is active. Average file access is 0.25 seconds, max is 1.4 seconds. Total downloaded data is 30MB.
[root@hbfuse ~]# /usr/bin/time -v python3 read.py -p ./mnt/latest/root/bigdir -d 5 -f 500000 -t30
Test started at 2020-02-21T21:02:50.821143
..............................
Test ended at 2020-02-21T21:02:58.320248
Test accessing 30 files took 7.499105 seconds
Fastest file took 0.001474 seconds
Slowest file took 1.382141 seconds
Command being timed: "python3 read.py -p ./mnt/latest/root/bigdir -d 5 -f 500000 -t30"
User time (seconds): 0.05
System time (seconds): 0.02
Percent of CPU this job got: 1%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:07.58
Maximum resident set size (kbytes): 13264
Major (requiring I/O) page faults: 11
Minor (reclaiming a frame) page faults: 1591
Voluntary context switches: 209
Involuntary context switches: 74
File system inputs: 10808
Exit status: 0
Add B2 destination to dest.conf
, then do an incremental backup. This
will download previous backup files from the ssh server, upload them
to B2, then upload any new backup files to both destinations:
[root@hbfuse ~]# cat hb/dest.conf
destname b2
type b2
accountid xxx
appkey xxx
bucket hashbackup
dir hbfuse
destname linode
type ssh
host linode
dir hbfuse
[root@hbfuse ~]# /usr/bin/time -v hb backup -c hb bigdir -v1
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Backup start: 2020-02-22 03:04:59
Using destinations in dest.conf
Increased cache to 220 MB
Getting arc.0.0
Wait for arc.0.0 - 100 MB 3s
Getting arc.0.1
Wait for arc.0.1 - 100 MB 4s
Getting arc.0.2
Copied arc.0.1 to b2 (100 MB 11s 8.9 MB/s)
This is backup version: 1
Dedup enabled, 0% of current size, 0% of max size
Backing up: /root/bigdir
Backing up: /root/hb/inex.conf
Copied arc.0.2 to b2 (48 MB 2s 18 MB/s)
Copied arc.0.0 to b2 (100 MB 31s 3.2 MB/s)
Writing hb.db.1
Waiting for destinations: b2, linode
Copied hb.db.1 to linode (207 MB 6s 33 MB/s)
Waiting for destinations: b2
Copied hb.db.1 to b2 (207 MB 27s 7.5 MB/s)
Copied dest.db to linode (3.6 MB 0s 11 MB/s)
Waiting for destinations: b2
Copied dest.db to b2 (3.6 MB 7s 497 KB/s)
Time: 127.2s, 2m 7s
CPU: 81.6s, 1m 21s, 64%
Wait: 46.3s
Mem: 330 MB
Checked: 2500010 paths, 250000104 bytes, 250 MB
Saved: 3 paths, 0 bytes, 0 bytes
Excluded: 0
No errors
Command being timed: "hb backup -c hb bigdir -v1"
User time (seconds): 60.61
System time (seconds): 36.71
Percent of CPU this job got: 55%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:54.30
Maximum resident set size (kbytes): 322400
Major (requiring I/O) page faults: 31
Minor (reclaiming a frame) page faults: 295410
Voluntary context switches: 104518
Involuntary context switches: 327343
File system inputs: 5034984
File system outputs: 1079040
Exit status: 0
Run hb mount
again. Now files are fetched from B2 because it comes
first in dest.conf. Accessing the 30 random files uses 83MB of RAM in
the mount process. Total downloaded data is 30MB (from du -ksc hb/spans.tmp
):
[root@hbfuse ~]# /usr/bin/time -v hb mount -c hb mnt
HashBackup #2488 Copyright 2009-2020 HashBackup, LLC
Backup directory: /root/hb
Mounting backup at: /root/mnt
Unmount with: fusermount -u /root/mnt
Using destinations in dest.conf
Increased cache to 220 MB
Backup mounted in foreground; use Ctrl-\ to abort, followed by unmount command listed above
^\
Command terminated by signal 3
Command being timed: "hb mount -c hb mnt"
User time (seconds): 1.04
System time (seconds): 0.47
Percent of CPU this job got: 1%
Elapsed (wall clock) time (h:mm:ss or m:ss): 1:30.80
Maximum resident set size (kbytes): 83668
Major (requiring I/O) page faults: 17
Minor (reclaiming a frame) page faults: 41452
Voluntary context switches: 3279
Involuntary context switches: 249
File system inputs: 24568
File system outputs: 60312
Exit status: 0
[root@hbfuse ~]# umount mnt
Here’s the random read test from another window using 13MB of RAM. Average file access is 0.5 seconds, max is 5 seconds. Latency is expected to be higher since HashBackup is running in Atlanta and Backblaze is in California:
[root@hbfuse ~]# /usr/bin/time -v python3 read.py -p ./mnt/latest/root/bigdir -d 5 -f 500000 -t30
Test started at 2020-02-22T03:27:45.188460
..............................
Test ended at 2020-02-22T03:28:00.021474
Test accessing 30 files took 14.833014 seconds
Fastest file took 0.001294 seconds
Slowest file took 4.997817 seconds
Command being timed: "python3 read.py -p ./mnt/latest/root/bigdir -d 5 -f 500000 -t30"
User time (seconds): 0.05
System time (seconds): 0.02
Percent of CPU this job got: 0%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:14.92
Maximum resident set size (kbytes): 13340
Major (requiring I/O) page faults: 11
Minor (reclaiming a frame) page faults: 1592
Voluntary context switches: 209
Involuntary context switches: 75
File system inputs: 10704
Exit status: 0