环境:
| 环境信息 | |
|---|---|
| 虚拟机: | VMware Virtual Platform |
| 系统: | 银河麒麟 V10 SP3 (x86_64) |
| cpu: | 4C |
| 内存: | 32G |
| 数据库版本 | openGauss 3.0.6 (x86_64) |
| 安装模式 | 单节点 |
| 数据目录文件系统 | xfs |
shared_buffers | 8GB |
work_mem | 32M |
maintenance_work_mem | 256MB |
wal_buffers | 64MB |
checkpoint_timeout | 15min |
checkpoint_completion_target | 0.9 |
synchronous_commit | off(压测建议) |
full_page_writes | off(压测建议,生产不开) |
max_connections | 1000 |
effective_cache_size | 3GB |
random_page_cost | 1.1 |
huge_pages | try |
-- 连接数据库后执行
gsql -p 15400 -U omm -dpostgres -W OG11ZpgmNFGt
ALTER SYSTEM SET shared_buffers = '4GB';
ALTER SYSTEM SET checkpoint_timeout = '15min';
ALTER SYSTEM SET checkpoint_completion_target = 0.9;
ALTER SYSTEM SET full_page_writes = off;
ALTER SYSTEM SET max_connections = 1000;
ALTER SYSTEM SET wal_buffers = '64MB';
-- 重载配置使其生效
SELECT pg_reload_conf();
vi /data/dn/postgresql.conf
work_mem = 32MB
maintenance_work_mem = 256MB
synchronous_commit = off
random_page_cost = 1.1
effective_cache_size = 24GB
gs_om -t restart
-- 查看当前生效参数
SELECT name, setting, unit
FROM pg_settings
WHERE name IN (
'shared_buffers', 'work_mem', 'maintenance_work_mem', 'wal_buffers',
'checkpoint_timeout', 'checkpoint_completion_target', 'synchronous_commit',
'full_page_writes', 'max_connections', 'effective_cache_size',
'random_page_cost', 'huge_pages'
);

状态
gs_om -t status --detail

| 参数名 (Parameter) | 含义 | 建议设置范围或常见值 | 备注 |
|---|---|---|---|
terminals | 并发连接数,模拟的客户端数量 | 通常设为服务器CPU总线程数的2~6倍 | 核心性能参数之一 |
warehouses | 仓库数量 | 每个仓库约100MB,数据库总大小建议为服务器物理内存的2-5倍 | 决定测试数据集的大小 |
loadWorkers | 初始化数据时使用的并行工作线程数 | 默认为4,可根据需要增加以加快数据导入速度 | 仅用于数据准备阶段 |
runMins | 性能测试运行的持续时间(分钟) | 功能性测试可设短时间(如5-10分钟),正式基准测试需数小时甚至数天 | 与 runTxnsPerTerminal 二选一,不能同时为非0值 |
runTxnsPerTerminal | 每个终端要完成的事务固定数量 | 与 runMins二选一 | 设置后 runMins必须为0 |
newOrderWeight、paymentWeight等 | 不同事务类型的权重(NewOrder, Payment, OrderStatus, Delivery, StockLevel) | 五个权重值之和必须为100,默认值为45, 43, 4, 4, 4 | 模拟TPC-C标准规范或自定义业务混合场景 |
运行 BenchmarkSQL 测试
初始化数据库
创建测试数据库,相应的账户,以及授权:
gsql -p 15400 -U omm -dpostgres -W OG11ZpgmNFGt
create user benchmarksql with sysadmin PASSWORD 'OG11ZpgmNFGt';
CREATE DATABASE benchmarksql;
设置免密: 用omm用户可以,root 用户测试完之后建议删掉免密
ssh-keygen -t rsa
ssh-copy-id root@10.10.3.155
ssh root@10.10.3.155 date

编辑配置文件
vi props.gsdb=openGauss driver=org.opengauss.Driver conn=jdbc:opengauss://10.10.3.155:15400/benchmarksql?useUnicode=true&characterEncoding=utf-8 user=benchmarksql password=OG1xxakUx // -- 数据库总大小建议为服务器物理内存的2-5倍 warehouses=50 // -- 初始化数据时使用的并行工作线程数 loadWorkers=4 // -- 并发连接数,CPU总线程数的2~6倍 terminals=10 // -- 每个终端要完成的事务固定数量,与 runMins 二选一,设置后 runMins 必须为 0 runTxnsPerTerminal=0 // -- 性能测试运行的持续时间(分钟),功能性测试可设短时间(如5-10分钟),正式基准测试需数小时,与 runTxnsPerTerminal 二选一,不能同时为非0值 runMins=5 // -- 每分钟事务数上限,设成一个极大值相当于不限速,让系统跑满 limitTxnsPerMin=100000000 // -- 是否固定终端绑定仓库。 // true= 每个 terminal 固定访问同一个 warehouse(TPC-C 4.x 兼容模式,模拟"本地业务") // false= 所有 terminal 均匀访问所有 warehouse(更符合真实分布式场景) terminalWarehouseFixed=true // -- 新订单 — 最核心的事务,模拟客户下单 newOrderWeight=45 // -- 支付 — 订单付款 paymentWeight=43 // -- 订单状态查询 — 查订单 orderStatusWeight=4 // -- 发货 — 后台批量发货处理 deliveryWeight=4 // -- 库存水平查询 — 查库存 stockLevelWeight=4 // -- 测试结果输出目录名 resultDirectory=openGauss_result_%tY-%tm-%td_%tH%tM%tS // -- OS 指标采集脚本路径,BenchmarkSQL 用它来收集数据库服务器的 CPU、内存、磁盘、网络等指标,随压测一起跑 osCollectorScript=./misc/os_collector_linux.py // -- 采集间隔(秒),每 1 秒采集一次 OS 指标 osCollectorInterval=1 // -- 远程采集目标,通过 SSH 登录 以omm 或者 root 用户执行采集脚本。 osCollectorSSHAddr=root@10.10.3.155 // net_ens33 监控网卡 ens160 的网络吞吐(RX/TX bytes/packets) // blk_sdb: 监控磁盘 sdb 的 IOPS / 吞吐量 osCollectorDevices=net_ens33 blk_sdb
典型场景配置参考
轻量测试(开发环境)
warehouses=2
terminals=4
runMins=1
压力测试(性能摸底)
warehouses=50
terminals=50
runMins=10
terminalWarehouseFixed=false
长时间稳定性测试
warehouses=100
terminals=100
runMins=60
terminalWarehouseFixed=false
build
./runDatabaseBuild.sh props.gs


run 运行测试
./runBenchmark.sh ./props.gs

可以监控下:
iostat -xmt 1

输出:

report 生成图形化测试报告
生成报告前,我们要安装 R 语言环境
安装依赖
yum install -y gcc gcc-c++ gcc-gfortran \ readline-devel libXt-devel libpng-devel libjpeg-turbo-devel \ libtiff-devel cairo-devel pango-devel \ zlib-devel bzip2-devel xz-devel pcre2-devel \ curl-devel openssl-devel \ java-1.8.0-openjdk-devel \ perl make automake autoconfyum install -y texlive texinfo --nogpgcheck
编译安装cd /usr/local/src wget https://cran.r-project.org/src/base/R-4/R-4.3.3.tar.gz tar -xzf R-4.3.3.tar.gz cd R-4.3.3 ./configure \ --prefix=/usr/local/R \ --enable-R-shlib \ --with-readline \ --with-x \ --with-libpng \ --with-jpeglib \ --with-cairo make -j$(nproc) make install



配置环境变量
echo 'export PATH=/usr/local/R/bin:$PATH' >> /etc/profile
source /etc/profile
R --version
这样我们就可以生成图形化的报告了
./generateReport.sh ./openGauss_result_2026-06-25_222407

接下来就可以在浏览器中打开测试报告了





测试完之后,清理数据
./runDatabaseDestroy.sh props.gs

最后修改时间:2026-06-26 09:46:44
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




