postgres \c 调用 fscanf 导致的 bug。

This commit is contained in:
2026-03-14 18:52:28 +08:00
parent cf13b0228e
commit 1732163cbf
15 changed files with 107 additions and 175 deletions

View File

@@ -4,14 +4,6 @@
sudo apt-get update
sudo apt-get install -y postgresql postgresql-contrib
# 2. 找到 postgresql.confUbuntu 通常在这个目录)
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
```