Benchmark
The ez-prep
command in Singularity provides a streamlined approach to benchmarking.
Preparing Test Data
Initially, you need to generate data for benchmarking. Sparse files are used here to remove disk IO time from the benchmark. Currently, Singularity does not perform CID deduplication, so it processes these files as random bytes.
If you aim to include disk IO time in your benchmark, use the following method to create a random file:
Using ez-prep
ez-prep
The ez-prep
command streamlines data preparation from a local folder with minimal configurable options.
Benchmarking Inline Preparation
Inline preparation negates the need for exporting CAR files, saving metadata directly to the database:
Benchmarking with In-Memory Database
To minimize disk IO, opt for an in-memory database:
Benchmarking with Multiple Workers
For optimal CPU core utilization, set concurrency for the benchmark. Note: each worker uses approximately 4 CPU cores:
Interpreting Results
Typical output will resemble:
real
: Actual elapsed time. Using more workers should reduce this time.user
: CPU time used in user space. Dividinguser
byreal
approximates the number of CPU cores used.sys
: CPU time used in kernel space (represents disk IO).
Comparison
The following benchmarks were conducted on a random 8G file:
Singularity w/ inline prep
Singularity w/o inline prep
go-fil-dataprep
generate-car
go-car + stream-commp
Last updated