postgres \c 调用 fscanf 导致的 bug。
This commit is contained in:
@@ -4,14 +4,6 @@
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y postgresql postgresql-contrib
|
||||
|
||||
# 2. 找到 postgresql.conf(Ubuntu 通常在这个目录)
|
||||
|
||||
ls /etc/postgresql/*/main/postgresql.conf
|
||||
|
||||
# 3. 配置禁用 mmap(编辑 postgresql.conf)
|
||||
|
||||
shared_memory_type = sysv
|
||||
dynamic_shared_memory_type = sysv
|
||||
|
||||
# 4. 重启 PostgreSQL
|
||||
|
||||
@@ -19,52 +11,39 @@ dynamic_shared_memory_type = sysv
|
||||
sudo systemctl stop postgresql
|
||||
pkill -9 -u postgres postgres || true
|
||||
rm -rf /home/lian/pg/pgdata
|
||||
rm -rf /zvfs/pg_ts_bench
|
||||
LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so rm -rf /zvfs/pg_ts_bench
|
||||
rm -rf /tmp/pg.log
|
||||
|
||||
## 初始化
|
||||
sudo mkdir -p /home/lian/pg/pgdata
|
||||
sudo chown -R postgres:postgres /home/lian/pg
|
||||
sudo -u postgres mkdir -p /home/lian/pg/pgdata
|
||||
sudo chown -R postgres:postgres /home/lian/pg/pgdata
|
||||
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so \
|
||||
/usr/lib/postgresql/12/bin/initdb -D /home/lian/pg/pgdata
|
||||
|
||||
## 修改配置文件
|
||||
cp ./postgresql.conf /home/lian/pg/pgdata/
|
||||
cp /home/lian/share/zvfs/postgresql.conf /home/lian/pg/pgdata/
|
||||
sudo chown -R postgres:postgres /home/lian/pg/pgdata/postgresql.conf
|
||||
|
||||
## 创建测试环境
|
||||
sudo -u postgres mkdir -p /zvfs/pg_ts_bench
|
||||
sudo mkdir -p /zvfs/pg_ts_bench
|
||||
sudo chown -R postgres:postgres /zvfs/pg_ts_bench
|
||||
sudo chmod 700 /zvfs/pg_ts_bench
|
||||
|
||||
|
||||
|
||||
## 启动服务
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so \
|
||||
/usr/lib/postgresql/12/bin/pg_ctl -D /home/lian/pg/pgdata -l /tmp/pg.log start
|
||||
|
||||
sudo -u postgres env \
|
||||
LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
ZVFS_DEBUG_OPEN=1 \
|
||||
ZVFS_DEBUG_OPEN_MATCH=PG_VERSION \
|
||||
ZVFS_DEBUG_RW=1 \
|
||||
/usr/lib/postgresql/12/bin/pg_ctl -D /home/lian/pg/pgdata -l /tmp/pg.log start
|
||||
|
||||
## 打开命令行工具
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
/usr/lib/postgresql/12/bin/psql
|
||||
|
||||
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
ZVFS_DEBUG_OPEN=1 \
|
||||
ZVFS_DEBUG_OPEN_MATCH=PG_VERSION \
|
||||
ZVFS_DEBUG_RW=1 \
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so \
|
||||
/usr/lib/postgresql/12/bin/psql
|
||||
|
||||
## 重启服务
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so \
|
||||
|
||||
## 重启服务指令
|
||||
sudo -u postgres env LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so \
|
||||
/usr/lib/postgresql/12/bin/pg_ctl -D /home/lian/pg/pgdata -l /tmp/pg.log restart
|
||||
|
||||
|
||||
@@ -142,7 +121,9 @@ WHERE relname='hook_probe';
|
||||
# 12. 删表
|
||||
DROP TABLE IF EXISTS hook_probe;
|
||||
|
||||
# 查看表文件
|
||||
SELECT pg_relation_filepath('hook_probe');
|
||||
|
||||
# 13. 压测
|
||||
bash /home/lian/try/zvfs/scripts/run_pgbench_no_mmap.sh
|
||||
bash /home/lian/share/zvfs/scripts/run_pgbench_no_mmap.sh
|
||||
```
|
||||
13
scripts/do_rocksdb_bench.md
Normal file
13
scripts/do_rocksdb_bench.md
Normal file
@@ -0,0 +1,13 @@
|
||||
```shell
|
||||
sudo apt install -y git build-essential libgflags-dev libsnappy-dev zlib1g-dev libbz2-dev liblz4-dev libzstd-dev cmake
|
||||
|
||||
git clone https://github.com/facebook/rocksdb.git
|
||||
cd rocksdb
|
||||
|
||||
git checkout v8.10.0
|
||||
|
||||
make db_bench -j$(nproc) \
|
||||
DISABLE_JEMALLOC=1 \
|
||||
USE_JEMALLOC=0 \
|
||||
JEMALLOC=0
|
||||
```
|
||||
@@ -5,7 +5,7 @@ set -euo pipefail
|
||||
# Manual Config (edit here)
|
||||
# =========================
|
||||
# 可执行文件路径
|
||||
DB_BENCH_BIN="/home/lian/env/rocksdb-test/db_bench"
|
||||
DB_BENCH_BIN="/home/lian/env/rocksdb/db_bench"
|
||||
# RocksDB 数据目录
|
||||
DB_PATH="/tmp/rocksdb_manual"
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
env -u LD_PRELOAD rm -rf /zvfs/rocksdb_manual || true
|
||||
env -u LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so -rf /zvfs/rocksdb_manual || true
|
||||
|
||||
# =========================
|
||||
# Manual Config (edit here)
|
||||
# =========================
|
||||
# 可执行文件路径
|
||||
DB_BENCH_BIN="/home/lian/env/rocksdb-test/db_bench"
|
||||
DB_BENCH_BIN="/home/lian/env/rocksdb/db_bench"
|
||||
# RocksDB 数据目录
|
||||
DB_PATH="/zvfs/rocksdb_manual"
|
||||
|
||||
@@ -20,8 +20,7 @@ DB_PATH="/zvfs/rocksdb_manual"
|
||||
BENCHMARKS="fillrandom,readrandom"
|
||||
|
||||
# key数
|
||||
# NUM=1000000
|
||||
NUM=5000
|
||||
NUM=50000
|
||||
|
||||
# 线程数
|
||||
THREADS=2
|
||||
@@ -92,7 +91,7 @@ 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 "$DB_BENCH_BIN" \
|
||||
exec env LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so "$DB_BENCH_BIN" \
|
||||
--db="$DB_PATH" \
|
||||
--benchmarks="$BENCHMARKS" \
|
||||
--num="$NUM" \
|
||||
|
||||
@@ -21,7 +21,7 @@ PG_INIT_STEPS="dtg"
|
||||
PG_SKIP_INIT="0"
|
||||
PG_SUPERUSER="postgres"
|
||||
USE_LD_PRELOAD="1"
|
||||
LD_PRELOAD_PATH="/home/lian/try/zvfs/src/libzvfs.so"
|
||||
LD_PRELOAD_PATH="/home/lian/share/zvfs/src/libzvfs.so"
|
||||
|
||||
# 可选:优先使用这个目录;为空时自动从 PATH 里找
|
||||
PG_BIN_DIR="/usr/lib/postgresql/12/bin"
|
||||
|
||||
@@ -1 +1 @@
|
||||
LD_PRELOAD=/home/lian/try/zvfs/src/libzvfs.so ZVFS_TEST_ROOT=/zvfs /home/lian/try/zvfs/tests/bin/hook_api_test
|
||||
LD_PRELOAD=/home/lian/share/zvfs/src/libzvfs.so ZVFS_TEST_ROOT=/zvfs /home/lian/share/zvfs/tests/bin/hook_api_test
|
||||
@@ -1,8 +0,0 @@
|
||||
# pgrep -u postgres -x postgres | while read p; do
|
||||
# echo "PID=$p"
|
||||
# sudo grep -m1 libzvfs /proc/$p/maps || echo " (no libzvfs)"
|
||||
# done
|
||||
|
||||
for p in 185591 185633 185664; do
|
||||
echo "== $p"; grep libzvfs /proc/$p/maps || echo "NO_LIB";
|
||||
done
|
||||
Reference in New Issue
Block a user