diff --git a/npi/fio/file_cache.dockerfile b/npi/fio/file_cache.dockerfile new file mode 100644 index 0000000..5c5348f --- /dev/null +++ b/npi/fio/file_cache.dockerfile @@ -0,0 +1,15 @@ +ARG UBUNTU_VERSION=24.04 +ARG GO_VERSION=1.24.5 +ARG ARCH=amd64 +ARG GCSFUSE_VERSION=master +ARG REGISTRY=us-docker.pkg.dev + +FROM ${REGISTRY}/gcs-fuse-test/gcsfuse-benchmarks/gcsfuse-${GCSFUSE_VERSION}-perf-base-${ARCH}:latest +COPY run_fio_benchmark.py /run_fio_benchmark.py +COPY fio_benchmark_runner.py /fio_benchmark_runner.py +COPY run_fio_matrix.py /run_fio_matrix.py +COPY file_cache_matrix.csv /file_cache_matrix.csv +COPY file_cache.fio /file_cache.fio +ENTRYPOINT ["/run_fio_matrix.py", "--matrix-config", "/file_cache_matrix.csv", "--fio-template", "/file_cache.fio", +"--gcsfuse-flags=implicit-dirs metadata-cache-ttl-secs=-1 type-cache-max-size-mb=-1 stat-cache-max-size-mb=-1 file-cache-max-size-mb=-1 file-cache-cache-file-for-range-read" +] diff --git a/npi/fio/file_cache.fio b/npi/fio/file_cache.fio new file mode 100644 index 0000000..ca05e00 --- /dev/null +++ b/npi/fio/file_cache.fio @@ -0,0 +1,21 @@ +[global] +ioengine=libaio +direct=1 +fadvise_hint=0 +iodepth=64 +invalidate=1 +nrfiles=${NR_FILES} +thread=1 +openfiles=1 +group_reporting=1 +create_serialize=0 +allrandrepeat=0 +file_service_type=random +numjobs=${NUM_JOBS} +filename_format=$jobname.$jobnum/$filenum + +[Workload] +directory=${DIR} +bs=${BLOCK_SIZE} +filesize=${FILE_SIZE} +rw=${READ_TYPE} diff --git a/npi/fio/file_cache_matrix.csv b/npi/fio/file_cache_matrix.csv new file mode 100644 index 0000000..a9f3ac3 --- /dev/null +++ b/npi/fio/file_cache_matrix.csv @@ -0,0 +1,9 @@ +IO_TYPE,FILE_SIZE,BLOCK_SIZE,NR_FILES,QUEUE_DEPTH,NUM_JOBS +read,64K,64K,20000,4,50 +read,128K,128K,20000,4,50 +read,1M,256K,20000,4,50 +read,100M,1M,1000,4,50 +read,10G,1M,16,4,1 +read,10G,1M,2,4,8 +read,10G,1M,1,4,96 +randread,1M,256K,20000,4,50