123 lines
3.3 KiB
Bash
Executable File
123 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
LD_PRELOAD_PATH="${ZVFS_LD_PRELOAD_VALUE:-${ROOT_DIR}/src/libzvfs.so}"
|
|
|
|
env LD_PRELOAD="${LD_PRELOAD_PATH}" rm -rf /zvfs/rocksdb_manual || true
|
|
|
|
# =========================
|
|
# Manual Config (edit here)
|
|
# =========================
|
|
# 可执行文件路径
|
|
DB_BENCH_BIN="/home/lian/env/rocksdb/db_bench"
|
|
# RocksDB 数据目录
|
|
DB_PATH="/zvfs/rocksdb_manual"
|
|
|
|
# 测试类型 sets:
|
|
# - "fillseq"
|
|
# - "fillrandom"
|
|
# - "readseq"
|
|
# - "readrandom"
|
|
# - "overwrite"
|
|
# - "fillrandom,readrandom"
|
|
BENCHMARKS="fillrandom,readrandom"
|
|
|
|
# key数
|
|
NUM=50000
|
|
|
|
# 线程数
|
|
THREADS=2
|
|
# 随机种子
|
|
SEED=1
|
|
|
|
# key大小
|
|
KEY_SIZE=16
|
|
# value大小
|
|
VALUE_SIZE=400
|
|
# SST block大小
|
|
BLOCK_SIZE=4096
|
|
|
|
# block cache 大小
|
|
CACHE_SIZE=$((512 * 1024 * 1024)) # bytes
|
|
# memtable 大小
|
|
WRITE_BUFFER_SIZE=$((64 * 1024 * 1024)) # bytes
|
|
# memtable 个数
|
|
MAX_WRITE_BUFFER_NUMBER=4
|
|
# L1文件目标大小
|
|
TARGET_FILE_SIZE_BASE=$((64 * 1024 * 1024)) # bytes
|
|
# 可打开文件数
|
|
OPEN_FILES=-1
|
|
|
|
# 后台 并行度
|
|
MAX_BACKGROUND_JOBS=4
|
|
# 压缩算法
|
|
COMPRESSION_TYPE="none"
|
|
# 开启WAL
|
|
DISABLE_WAL=1
|
|
SYNC=0
|
|
|
|
# direct I/O
|
|
USE_DIRECT_READS=1
|
|
USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION=0
|
|
|
|
# mmap I/O
|
|
USE_MMAP_READS=0
|
|
USE_MMAP_WRITES=0
|
|
|
|
# 统计
|
|
STATISTICS=0
|
|
# 统计打印
|
|
STATS_INTERVAL_SECONDS=5
|
|
# 直方图
|
|
HISTOGRAM=0
|
|
|
|
# =========================
|
|
# Run
|
|
# =========================
|
|
if [[ ! -x "$DB_BENCH_BIN" ]]; then
|
|
echo "db_bench not found or not executable: $DB_BENCH_BIN" >&2
|
|
exit 1
|
|
fi
|
|
|
|
echo "== db_bench manual run =="
|
|
echo "DB_BENCH_BIN=$DB_BENCH_BIN"
|
|
echo "DB_PATH=$DB_PATH"
|
|
echo "BENCHMARKS=$BENCHMARKS"
|
|
echo "NUM=$NUM THREADS=$THREADS"
|
|
echo "KEY_SIZE=$KEY_SIZE VALUE_SIZE=$VALUE_SIZE BLOCK_SIZE=$BLOCK_SIZE"
|
|
echo "CACHE_SIZE=$CACHE_SIZE WRITE_BUFFER_SIZE=$WRITE_BUFFER_SIZE"
|
|
echo "MAX_WRITE_BUFFER_NUMBER=$MAX_WRITE_BUFFER_NUMBER TARGET_FILE_SIZE_BASE=$TARGET_FILE_SIZE_BASE"
|
|
echo "OPEN_FILES=$OPEN_FILES MAX_BACKGROUND_JOBS=$MAX_BACKGROUND_JOBS"
|
|
echo "COMPRESSION_TYPE=$COMPRESSION_TYPE DISABLE_WAL=$DISABLE_WAL SYNC=$SYNC"
|
|
echo "USE_DIRECT_READS=$USE_DIRECT_READS USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION=$USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION"
|
|
echo "USE_MMAP_READS=$USE_MMAP_READS USE_MMAP_WRITES=$USE_MMAP_WRITES"
|
|
echo "STATISTICS=$STATISTICS STATS_INTERVAL_SECONDS=$STATS_INTERVAL_SECONDS HISTOGRAM=$HISTOGRAM"
|
|
echo
|
|
|
|
exec env LD_PRELOAD="${LD_PRELOAD_PATH}" "$DB_BENCH_BIN" \
|
|
--db="$DB_PATH" \
|
|
--benchmarks="$BENCHMARKS" \
|
|
--num="$NUM" \
|
|
--threads="$THREADS" \
|
|
--seed="$SEED" \
|
|
--key_size="$KEY_SIZE" \
|
|
--value_size="$VALUE_SIZE" \
|
|
--block_size="$BLOCK_SIZE" \
|
|
--cache_size="$CACHE_SIZE" \
|
|
--write_buffer_size="$WRITE_BUFFER_SIZE" \
|
|
--max_write_buffer_number="$MAX_WRITE_BUFFER_NUMBER" \
|
|
--target_file_size_base="$TARGET_FILE_SIZE_BASE" \
|
|
--open_files="$OPEN_FILES" \
|
|
--max_background_jobs="$MAX_BACKGROUND_JOBS" \
|
|
--compression_type="$COMPRESSION_TYPE" \
|
|
--disable_wal="$DISABLE_WAL" \
|
|
--sync="$SYNC" \
|
|
--use_direct_reads="$USE_DIRECT_READS" \
|
|
--use_direct_io_for_flush_and_compaction="$USE_DIRECT_IO_FOR_FLUSH_AND_COMPACTION" \
|
|
--mmap_read="$USE_MMAP_READS" \
|
|
--mmap_write="$USE_MMAP_WRITES" \
|
|
--statistics="$STATISTICS" \
|
|
--stats_interval_seconds="$STATS_INTERVAL_SECONDS" \
|
|
--histogram="$HISTOGRAM"
|