openEuler 底座赋能:openGauss 数据库部署与性能实战评测

openEuler 底座赋能:openGauss 数据库部署与性能实战评测

前言:openEuler 与 openGauss 的融合优势与测试目标

在数字化转型加速的背景下,数据库性能与稳定性已成为企业核心竞争力的关键要素。openGauss 作为华为开源的企业级分布式数据库,以其卓越的性能与强大的稳定性备受关注;而 openEuler 作为开源操作系统,则为其提供了高度兼容且稳定的系统底座。本次在服务器环境中测试 openEuler + openGauss 组合方案,旨在全面验证其在高并发、企业级应用场景下的部署效率、性能表现与系统稳定性,为数据库技术选型提供可靠的实证参考。

测试环境与系统配置详解

操作系统环境检测与版本信息确认

执行以下命令查看操作系统信息:

bash 复制代码
cat /etc/os-release
  • 操作系统:openEuler,国内主流的开源 Linux 发行版
  • 系统版本:24.03(LTS-SP2),LTS 表示长期支持版本,SP2 是该版本的第 2 个服务包

服务器硬件性能参数与计算资源分析

查看 CPU 信息:

bash 复制代码
lscpu | grep -E "^(CPU|Model|Core)"
  • 运算模式:支持 32 位、64 位双架构,可适配各类主流服务器软件的运行环境
  • 逻辑 CPU 数量:2 个(由 1 个物理核心开启超线程实现,每核心分配 2 线程)
  • 物理核心配置:1 个物理 CPU 插槽,每个插槽仅含 1 个物理核心

查看内存配置:

bash 复制代码
free -h

硬件配置总结:系统配备 2 个支持 32/64 位的 Intel Xeon Platinum(型号 85)CPU(每插槽 1 核),物理内存总量 1.6GiB,已使用 342MiB、可用 1.3GiB,Swap 分区容量为 0B。

openGauss 数据库安装与初始化实战

用户创建与数据库安装步骤详解

bash 复制代码
# 创建数据库用户和组
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 数据库集群与启动验证

验证 gs_initdb 命令:

bash 复制代码
# 切换到 omm 用户
su - omm

# 验证 gs_initdb 命令(会显示版本号,确认可用)
gs_initdb --version

openGauss 数据库版本:gs_initdb (openGauss) 9.2.4

初始化数据库集群:

bash 复制代码
# 初始化数据库
gs_initdb --nodename=primary \
--pgdata=/opt/opengauss/data \
--encoding=UTF-8 \
--locale=en_US.UTF-8 \
--dbcompatibility='A' \
--username=omm \
--pwpasswd='OpenGauss123'

关键配置说明:

  • 执行 gs_initdb 命令初始化 OpenGauss 数据库集群,指定节点名称为 primary
  • 数据库数据文件存储路径设为 /opt/opengauss/data
  • 配置数据库字符编码为 UTF-8、区域格式为 en_US.UTF-8
  • 通过 --dbcompatibility='A' 参数开启 Oracle 兼容模式
  • 创建 OpenGauss 默认超级用户 omm 并设置密码为 OpenGauss123

启动数据库服务:

bash 复制代码
# 启动数据库服务
gs_ctl start -D /opt/opengauss/data

# 验证数据库状态
gs_ctl status -D /opt/opengauss/data

启动结果分析:

  • 通过 gs_ctl 完成数据库启动操作,提示 "server started",确认数据库数据目录为 /opt/opengauss/data
  • 执行 gs_ctl status 查询状态,结果显示数据库服务器处于运行状态,对应的进程 PID 为 18410
  • 启动的数据库进程为 /opt/opengauss/bin/gaussdb,并指定了数据目录 /opt/opengauss/data

数据库连接验证与基础运维命令总结

连接数据库测试:

sql 复制代码
-- 连接数据库
gsql -d postgres -U omm -W 'OpenGauss123'

连接验证说明:

  • 连接成功后进入 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 命令即可

基础性能测试:openGauss 查询性能与 QPS 评估

生成带计数功能的测试脚本:

bash 复制代码
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

确保脚本有执行权限:

bash 复制代码
chmod +x /tmp/simple_test.sh

启动测试(20 并发、60 秒):

bash 复制代码
# 启动测试
for ((i=1; i<=20; i++)); do /tmp/simple_test.sh 60 & done; wait

精准统计 QPS:

bash 复制代码
# 汇总所有进程的查询次数(求和)
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 在多线程场景下的稳定性验证

创建高并发压测脚本:

bash 复制代码
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

添加执行权限:

bash 复制代码
chmod +x ~/simple_high.sh

一键启动高并发测试(默认 50 并发、60 秒):

bash 复制代码
~/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 环境运行稳定,性能表现优异。从安装部署到性能测试的完整流程验证了该组合方案的实际可行性:

  1. 部署效率:openEuler 系统与 openGauss 数据库的安装配置过程顺利,环境依赖简单,部署效率高
  2. 性能表现:基础查询测试 QPS 达 60,高并发场景下(50 并发)QPS 稳定在 65,平均延迟仅 15 毫秒,性能表现良好
  3. 系统稳定性:在持续高负载测试中,系统资源占用合理,无异常崩溃或性能骤降,表现出良好的稳定性
  4. 资源利用:CPU、内存、磁盘和网络资源在负载下波动正常,无明显的性能瓶颈

整体验证了 openEuler 与 openGauss 在云端环境下的高兼容性与高性能,具备企业级数据库部署与性能测试的实际参考价值,为数据库技术选型提供了可靠的实证依据。

相关推荐
用户4098170215101 小时前
Python 的基本类型
后端
codetown2 小时前
openai-go通过SOCKS5代理调用外网大模型
人工智能·后端
星辞树2 小时前
MIT 6.824 Lab 3 通关实录:从 Raft 到高可用 KV 存储
后端
q***33373 小时前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端
q***42823 小时前
SpringBoot Maven快速上手
spring boot·后端·maven
Victor3563 小时前
Redis(153)Redis的网络使用如何监控?
后端
码一行3 小时前
Eino AI 实战:解析 PDF 文件 & 实现 MCP Server
后端·go
Victor3563 小时前
Redis(152) Redis的CPU使用如何监控?
后端
P***84393 小时前
解决Spring Boot中Druid连接池“discard long time none received connection“警告
spring boot·后端·oracle