前言:openEuler与openGauss的融合优势与测试目标
数字化转型加速的背景下,数据库性能与稳定性成为企业关键竞争力。openGauss作为华为开源的企业级数据库,具备高性能与强稳定性;openEuler则为其提供高兼容性的系统底座。本次在服务器上测试openEuler+openGauss组合,旨在验证其在企业级场景下的部署效率、性能表现与稳定性,为数据库技术选型提供实证参考
测试环境与系统配置详解
操作系统环境检测与版本信息确认
查看操作系统信息
cat /etc/os-release
- 操作系统:openEuler(国内主流的开源 Linux 发行版)
- 系统版本:24.03(LTS-SP2)LTS 表示长期支持版,SP2 是该版本的第 2 个服务包

云服务器硬件性能参数与计算资源分析
# 查看系统硬件信息
lscpu | grep -E "^(CPU|Model|Core)"

- 运算模式:支持 32 位、64 位双架构,可适配各类主流服务器软件的运行环境
- 逻辑 CPU 数量:2 个(由 1 个物理核心开启超线程实现,每核心分配 2 线程)
- 物理核心配置:1 个物理 CPU 插槽,每个插槽仅含 1 个物理核心
# 查看内存配置
free -h

系统配备 2 个支持 32/64 位的 Intel Xeon Platinum(型号 85)CPU(每插槽 1 核),物理内存总 1.6Gi,已用 342Mi、可用 1.3Gi,Swap 分区容量为 0B
openGauss数据库安装与初始化实战
用户创建与数据库安装步骤详解
# 创建数据库用户和组
groupadd dbgrp
useradd -g dbgrp omm
echo "omm:OpenGauss123" | chpasswd
# 创建数据库目录
mkdir -p /opt/opengauss/data
chown -R omm:dbgrp /opt/opengauss
# 下载并安装openGauss
wget https://opengauss.obs.cn-south-1.myhuaweicloud.com/3.1.0/x86_openEuler/openGauss-3.1.0-openEuler-64bit-all.tar.gz
tar -zxvf openGauss-3.1.0-openEuler-64bit-all.tar.gz -C /opt/opengauss
# 配置环境变量
cat >> /home/omm/.bashrc << EOF
export GAUSSHOME=/opt/opengauss
export PATH=\$GAUSSHOME/bin:\$PATH
export LD_LIBRARY_PATH=\$GAUSSHOME/lib:\$LD_LIBRARY_PATH
export PGDATA=/opt/opengauss/data
EOF

初始化openGauss数据库集群与启动验证
openGauss数据库版本:gs_initdb (openGauss) 9.2.4
# 切换到omm用户
su - omm
# 2. 验证 gs_initdb 命令(会显示版本号,确认可用)
gs_initdb --version

- 执行 gs_initdb 命令初始化 OpenGauss 数据库集群,指定节点名称为 primary,数据库数据文件存储路径设为 /opt/opengauss/data
- 配置数据库字符编码为 UTF-8、区域格式为 en_US.UTF-8,通过 --dbcompatibility=‘A’ 参数开启 Oracle 兼容模式
- 创建 OpenGauss 默认超级用户 omm 并设置密码为 OpenGauss123,命令执行完成后将生成可直接启动的数据库基础环境
# 初始化数据库
gs_initdb --nodename=primary \
--pgdata=/opt/opengauss/data \
--encoding=UTF-8 \
--locale=en_US.UTF-8 \
--dbcompatibility='A' \
--username=omm \
--pwpasswd='OpenGauss123'
- 通过 gs_ctl 完成数据库启动操作,提示 “server started”,确认数据库数据目录为 /opt/opengauss/data
- 执行 gs_ctl status 查询状态,结果显示数据库服务器处于运行状态,对应的进程 PID 为 18410
- 启动的数据库进程为 /opt/opengauss/bin/gaussdb,并指定了数据目录 /opt/opengauss/data


# 启动数据库服务
gs_ctl start -D /opt/opengauss/data
# 验证数据库状态
gs_ctl status -D /opt/opengauss/data
数据库连接验证与基础运维命令总结
连接成功后
- 会进入 postgres=# 交互界面,说明数据库可用
- 可执行简单 SQL 测试:输入 select version(); 回车,会显示 openGauss 版本信息
- 退出交互界面:输入 \q 回车即可
日常核心操作
- 停止数据库:gs_ctl stop -D /opt/opengauss/data
- 重启数据库:gs_ctl restart -D /opt/opengauss/data
- 查看运行日志:tail -f /opt/opengauss/data/start.log(排查问题用)
- 再次连接:直接复用上面的 gsql 命令即可
-- 连接数据库
gsql -d postgres -U omm -W 'OpenGauss123'

基础性能测试:openGauss查询性能与QPS评估
1、生成带计数功能的测试脚本
echo '#!/bin/bash
# 记录当前进程的查询次数,输出到临时文件
count=0
end=$((SECONDS + $1))
while [ $SECONDS -lt $end ]; do
# 执行查询(成功则计数+1)
gsql -d postgres -U omm -p 5432 -W "OpenGauss123" -h 127.0.0.1 -c "select 1;" > /dev/null 2>&1 && ((count++))
done
# 把当前进程的计数写入临时文件(每个进程一个文件,避免冲突)
echo $count > /tmp/test_count_$$.tmp' > /tmp/simple_test.sh
2、确保脚本有执行权限
chmod +x /tmp/simple_test.sh
3、启动测试20 并发、60 秒
# 启动测试
for ((i=1; i<=20; i++)); do /tmp/simple_test.sh 60 & done; wait
4、精准统计 QPS
# 汇总所有进程的查询次数(求和)
total=$(cat /tmp/test_count_*.tmp 2>/dev/null | awk '{sum+=$1} END {print sum}')
# 计算QPS(总次数/测试秒数)
qps=$((total / 60))
# 输出结果
echo "测试结果:"
echo "总查询次数:$total"
echo "测试时长:60秒"
echo "并发数:20"
echo "精准QPS(每秒查询数):$qps"
# 清理临时文件(可选,不占空间)
rm -f /tmp/test_count_*.tmp

20 并发、60 秒的简单查询测试中,openGauss 表现稳定,QPS(每秒查询数)达 60,属于基础场景下的正常性能水平
高并发性能评估:openGauss在多线程场景下的稳定性验证
1、创建高并发压测脚本
echo '#!/bin/bash
# 极简高并发压测脚本(omm家目录版,无权限问题)
CONCURRENT=${1:-50}
DURATION=${2:-60}
TMP_DIR="$HOME/pg_test"
mkdir -p $TMP_DIR && rm -f $TMP_DIR/*
# 前置检测数据库连接
echo "🔍 检测数据库连接..."
if ! gsql -d postgres -U omm -p 5432 -W "OpenGauss123" -h 127.0.0.1 -c "select 1;" > /dev/null 2>&1; then
echo "❌ 连接失败!请检查:1.密码是否为OpenGauss123 2.数据库是否启动 3.端口是否5432"
exit 1
fi
echo "✅ 连接正常,开始压测!"
# 显示配置
echo -e "\n====================================="
echo "并发数:$CONCURRENT | 测试时长:$DURATION 秒"
echo "====================================="
# 启动并发测试
for ((i=1; i<=CONCURRENT; i++)); do
(
count=0
end=$((SECONDS + DURATION))
while [ $SECONDS -lt $end ]; do
gsql -d postgres -U omm -p 5432 -W "OpenGauss123" -h 127.0.0.1 -c "select 1;" > /dev/null 2>&1 && ((count++))
done
echo $count > $TMP_DIR/count_$i.txt
) &
done
# 实时进度
echo -n "测试进度:"
for ((t=1; t<=DURATION; t++)); do
echo -n "$t "
sleep 1
done
echo -e "\n====================================="
# 汇总结果(无awk,纯Shell循环)
wait
total=0
for file in $TMP_DIR/count_*.txt; do
num=$(cat $file 2>/dev/null || echo 0)
total=$((total + num))
done
# 计算指标
qps=$((total / DURATION))
latency=$(( total > 0 ? (DURATION * 1000) / total : "N/A" ))
# 输出结果
echo "📊 压测结果:"
echo "总成功查询:$total 次"
echo "QPS:$qps"
echo "平均延迟:$latency 毫秒"
echo "并发数:$CONCURRENT | 时长:$DURATION 秒"
echo "====================================="
# 清理文件
rm -rf $TMP_DIR
echo "✅ 测试结束!"
' > ~/simple_high.sh

2、添加执行权限
chmod +x ~/simple_high.sh
3、一键启动高并发测试默认 100 并发、60 秒
~/simple_high.sh 50 60

本次 50 并发、60 秒轻量只读(select 1;)压测结果亮眼,openGauss 表现稳定且响应迅速,核心性能完全满足中小型应用基础并发需求,无任何查询失败或连接异常,为后续复杂场景测试奠定了可靠基准。
- 总成功查询次数:3912 次,全程无失败,数据库可用性 100%
- QPS(每秒查询数):65,50 并发下中等偏上,基础处理能力达标
- 平均延迟:15 毫秒,远低于 50ms 可接受阈值,用户操作无感知
- 测试条件:50 并发、60 秒时长,未超出数据库默认承载范围
服务器监控视图分析:CPU、内存与网络性能可视化
系统总体监控视图
openGauss数据库在测试期间系统整体运行平稳,各项性能指标波动合理。CPU使用率在测试高峰期出现多次短暂上升,最高接近80%,说明数据库在并发查询和写入阶段资源占用增加但仍保持可控。网络带宽与磁盘IOPS曲线同步上升,反映出在高负载场景下数据读写活跃。磁盘吞吐BPS整体平稳,说明存储性能稳定,无明显瓶颈。总体而言,openEuler + openGauss 在服务器环境下能高效响应负载变化,具备良好的系统稳定性与性能适应性

操作系统资源使用监控分析
从监控数据来看,系统整体运行稳定,性能表现良好。CPU使用率在高并发阶段出现明显波峰,最高接近80%,表明数据库在执行复杂查询和写入操作时资源利用充分。内存使用率稳定维持在25%左右,说明系统具备良好的内存管理能力。系统平均负载在测试后期有所上升,但始终保持在合理区间内,无过载情况。磁盘利用率与IOPS指标在负载高峰时短暂提升,随后迅速回落,显示出磁盘读写性能充足且响应迅速

网络吞吐与连接性能监控结果
网络监控图表可以看出,系统在测试过程中网络通信整体稳定,无异常波动。网卡带宽在数据交互高峰时短暂上升,峰值约为 8–10 Mbit/s,表明数据库在并发访问阶段产生了集中流量。流入流出包速率与带宽变化一致,网络连接数在高并发期间出现明显增长,但连接保持稳定,无中断或异常断开。错误包与丢包率始终为零,说明网络传输可靠性高

总结
本次在服务器部署的openEuler + openGauss环境运行稳定,性能表现优异。数据库安装配置顺利,查询与并发压测响应迅速,系统资源占用低且无异常。整体验证了openEuler与openGauss在云端环境下的高兼容性与高性能,具备企业级数据库部署与性能测试的实际参考价值。
如果您正在寻找面向未来的开源操作系统,不妨看看DistroWatch 榜单中快速上升的 openEuler:https://distrowatch.com/table-mobile.php?distribution=openeuler,一个由开放原子开源基金会孵化、支持“超节点”场景的Linux 发行版。
openEuler官网:https://www.openeuler.openatom.cn/zh/
2996

被折叠的 条评论
为什么被折叠?



