benchmark: inherit options --rsh --remote-path, fixes #8099

This commit is contained in:
Thomas Waldmann 2024-02-22 12:07:37 +01:00
parent 6be1035d8b
commit da285b15d2
No known key found for this signature in database
GPG Key ID: 243ACFA951F78E01
1 changed files with 21 additions and 8 deletions

View File

@ -18,13 +18,22 @@ class BenchmarkMixIn:
def do_benchmark_crud(self, args): def do_benchmark_crud(self, args):
"""Benchmark Create, Read, Update, Delete for archives.""" """Benchmark Create, Read, Update, Delete for archives."""
def parse_args(args, cmd):
# we need to inherit some essential options from the "borg benchmark crud" invocation
if args.rsh is not None:
cmd[1:1] = ["--rsh", args.rsh]
if args.remote_path is not None:
cmd[1:1] = ["--remote-path", args.remote_path]
return self.parse_args(cmd)
def measurement_run(repo, path): def measurement_run(repo, path):
compression = "--compression=none" compression = "--compression=none"
# measure create perf (without files cache to always have it chunking) # measure create perf (without files cache to always have it chunking)
t_start = time.monotonic() t_start = time.monotonic()
rc = get_reset_ec( rc = get_reset_ec(
self.do_create( self.do_create(
self.parse_args( parse_args(
args,
[ [
f"--repo={repo}", f"--repo={repo}",
"create", "create",
@ -32,7 +41,7 @@ class BenchmarkMixIn:
"--files-cache=disabled", "--files-cache=disabled",
"borg-benchmark-crud1", "borg-benchmark-crud1",
path, path,
] ],
) )
) )
) )
@ -41,27 +50,31 @@ class BenchmarkMixIn:
assert rc == 0 assert rc == 0
# now build files cache # now build files cache
rc1 = get_reset_ec( rc1 = get_reset_ec(
self.do_create(self.parse_args([f"--repo={repo}", "create", compression, "borg-benchmark-crud2", path])) self.do_create(
parse_args(args, [f"--repo={repo}", "create", compression, "borg-benchmark-crud2", path])
)
) )
rc2 = get_reset_ec( rc2 = get_reset_ec(
self.do_delete(self.parse_args([f"--repo={repo}", "delete", "-a", "borg-benchmark-crud2"])) self.do_delete(parse_args(args, [f"--repo={repo}", "delete", "-a", "borg-benchmark-crud2"]))
) )
assert rc1 == rc2 == 0 assert rc1 == rc2 == 0
# measure a no-change update (archive1 is still present) # measure a no-change update (archive1 is still present)
t_start = time.monotonic() t_start = time.monotonic()
rc1 = get_reset_ec( rc1 = get_reset_ec(
self.do_create(self.parse_args([f"--repo={repo}", "create", compression, "borg-benchmark-crud3", path])) self.do_create(
parse_args(args, [f"--repo={repo}", "create", compression, "borg-benchmark-crud3", path])
)
) )
t_end = time.monotonic() t_end = time.monotonic()
dt_update = t_end - t_start dt_update = t_end - t_start
rc2 = get_reset_ec( rc2 = get_reset_ec(
self.do_delete(self.parse_args([f"--repo={repo}", "delete", "-a", "borg-benchmark-crud3"])) self.do_delete(parse_args(args, [f"--repo={repo}", "delete", "-a", "borg-benchmark-crud3"]))
) )
assert rc1 == rc2 == 0 assert rc1 == rc2 == 0
# measure extraction (dry-run: without writing result to disk) # measure extraction (dry-run: without writing result to disk)
t_start = time.monotonic() t_start = time.monotonic()
rc = get_reset_ec( rc = get_reset_ec(
self.do_extract(self.parse_args([f"--repo={repo}", "extract", "borg-benchmark-crud1", "--dry-run"])) self.do_extract(parse_args(args, [f"--repo={repo}", "extract", "borg-benchmark-crud1", "--dry-run"]))
) )
t_end = time.monotonic() t_end = time.monotonic()
dt_extract = t_end - t_start dt_extract = t_end - t_start
@ -69,7 +82,7 @@ class BenchmarkMixIn:
# measure archive deletion (of LAST present archive with the data) # measure archive deletion (of LAST present archive with the data)
t_start = time.monotonic() t_start = time.monotonic()
rc = get_reset_ec( rc = get_reset_ec(
self.do_delete(self.parse_args([f"--repo={repo}", "delete", "-a", "borg-benchmark-crud1"])) self.do_delete(parse_args(args, [f"--repo={repo}", "delete", "-a", "borg-benchmark-crud1"]))
) )
t_end = time.monotonic() t_end = time.monotonic()
dt_delete = t_end - t_start dt_delete = t_end - t_start