开发者
医疗HIS系统性能提升的秘诀:鲲鹏 + 超融合虚拟化 + 数据库调优参考实践

医疗HIS系统性能提升的秘诀:鲲鹏 + 超融合虚拟化 + 数据库调优参考实践

案例分享鲲鹏处理器性能调优数据库

发表于 2026/03/11

0

1 非商用声明

本文档提供的内容为调优参考实践,仅用于技术方案参考与借鉴。用户可基于本文档构建自有软件系统,但需根据实际业务场景,自行完成安全加固、可靠性验证等关键环节,本文档不承担直接商用带来的相关责任。

2 方案概述

2.1 背景

随着国产化全栈技术的成熟落地,越来越多医院选择基于 “鲲鹏服务器 + 国产数据库 + 超融合虚拟化平台” 的国产化部署方案,支撑医疗 HIS 系统(医院信息系统 Hospital Information System)的稳定运行。此类部署方案需充分适配国产化硬件架构特性,结合医疗业务高并发、低时延的核心需求,最大化发挥鲲鹏服务器的计算性能,因此亟需一套端到端、针对性强的全链路调优方案,解决国产化部署场景下的性能瓶颈问题。

2.2 方案简介

本参考实践基于用户的实际部署形式,以鲲鹏920新型号为计算底座,针对医疗HIS系统、金仓数据库以及超融合虚拟化平台进行调优。主要设计思路为:一共部署5台服务器进行组网,其中1台为鲲鹏920新型号服务器,采用物理机部署的方式部署金仓数据库,另外3台鲲鹏920新型号服务器进行组网,采用ISV的超融合虚拟化平台,在虚拟化平台创建虚拟机部署医疗HIS系统。此外部署1台x86服务器,基于该服务器创建两台虚拟压测机,使用Jmeter工具模拟业务场景进行测试,以提升TPS以及降低业务时延作为目标进行性能优化。具体组网拓扑详见‘3.1环境组网介绍’章节。

2.3 调优思路

根据应用自身特点以及不同的部署形式,进行针对性调优。

表1 调优思路一览

部署现状

调优思路

物理机部署数据库

识别CPU/网络/IO等瓶颈,采用通用的调优方法

数据库使用金仓数据库部署

针对金仓数据库参数配置调优

HIS医疗系统基于JAVA语言开发

针对JDK以及JVM参数进行调优

超融合虚拟化平台

针对物理机进行BIOS配置项调优

针对超融合虚拟化平台进行平台特性调优


本次调优从 7 个核心维度展开,共包含 15 项具体调优手段,实现 “硬件 - 虚拟化 - 操作系统 - 数据库 - 应用” 的全链路覆盖:


1. BIOS 配置项调优

2. 操作系统调优

3. 磁盘 IO 调优

4. 网络系统调优

5. Java 应用调优(JDK+JVM)

6. 文件系统调优

7. 数据库参数调优

3 环境信息说明

3.1 环境组网介绍

测试环境采用分层组网架构,核心包含 “计算集群(数据库)、业务集群(HIS 系统+ 虚拟化)、压测集群” 三部分,具体组网拓扑如下:

图1 测试环境组网图

3.2 软硬件配置

本参考实践的调优验证所涉及的详细软硬件信息如表1 软件信息 和 表2 硬件信息。

表1 软件信息

类别

软件名称

软件版本

虚拟化软件

某超融合虚拟化平台

/

操作系统

Kylin Linux Advanced Server

V10 SP3-2403

应用软件

某ISV HIS系统

/

数据库

金仓

V8R6


表2 硬件信息

类别

硬件描述

CPU

鲲鹏7270Z 64C@2.9GHz

内存

16*32GB

硬盘

2*6.9TB NVMe硬盘

网络

2*25GE网卡

交换机

25GE交换机


4 调优参考实践

4.1 调优手段总览

调优手段总览见下表1

表1

归属组件

调优对象

调优手段

作用

金仓数据库调优

数据库物理机









设置CPU高性能模式

通过将CPU频率固定在最高值获得最大化性能

开启SMT超线程

开启SMT超线程,每个物理核分为两个逻辑核,提升整机性能

关闭SMMU

数据库通常会使用大量的内存和IO资源,而SMMU会增加额外的开销和延迟,关闭后可以提升系统的性能

数据库进程绑核(可选)

将数据库进程绑定到固定CPU核心上,减少跨NUMA访存延迟,从而提升系统性能

【可选】该调优方法多用于低并发场景(并发数<150),高并发场景(并发数>150)收益不明显,用户可以根据实际业务需要选择是否使能该调优项。

策略性抑制swap交换内存使用

减少数据库缓存交换到磁盘的情况,从而保证数据库的访问性能

选用性能更优的文件系统XFS(可选)

XFS是一种高性能的日志文件系统,XFS极具伸缩性,非常健壮,特别擅长处理大文件,同时提供平滑的数据传输,相比默认的ext4文件系统性能更优

【可选】该调优项适用于新建数据库场景,用户可以根据实际业务需要选择是否使能该调优项。

数据、日志分盘

分盘后,日志盘专注处理顺序写,数据盘专注处理随机读写,从而减少磁盘竞争,从而提升并发吞吐能力

磁盘IO调度策略调整

在固态硬盘场景下,使用none可以提升磁盘IO性能

网卡中断绑核

将处理网卡中断的CPU core设置在网卡所在的NUMA上,从而减少跨NUMA的内存访问所带来的额外开销,提升网络处理性能

数据库共享内存参数优化

可以将频繁访问的数据从缓慢的磁盘(微秒/毫秒级)移至高速的内存(纳秒级),从而提升数据库性能

数据库I/O相关参数优化

根据业务实际调整数据库配置参数,提升磁盘IO性能

数据库创表时不加外键(可选)

去除数据库外键可以减少数据修改时候额外校验带来的性能开销,达到降低CPU、I/O资源消耗,提升性能的效果

【可选】该调优方法多用于benchmark性能测试,在实际业务中仅作为优化思路进行参考,一般用于历史数据迁移或一次性初始化的场景,具体应用需要结合实际业务进行调整。

数据库填充因子修改(可选)

在插入和更新操作频繁的场景下,减小填充因子,可以减少由于索引页分裂而导致的I/O开销,从而提升插入、更新以及写入性能

【可选】该调优方法多用于benchmark性能测试,在实际业务中仅作为优化思路进行参考,一般用于业务中更新极为频繁的核心表,具体应用需要结合实际业务进行调整。

超融合调优

业务服务器物理机



设置CPU高性能模式

通过将CPU频率固定在最高值获得最大化性能

开启SMT超线程

开启SMT超线程,每个物理核分为两个逻辑核,提升整机性能

超融合虚拟化平台


启用CPU独占特性

CPU独占功能使虚拟机的vCPU独占其使用的物理CPU线程,此时其他的虚拟机vCPU将不会被调度到该线程;开启CPU独占功能,可以保证虚拟机在极限情况下的稳定性,但将会降低物理CPU的实际利用率。

启用NUMA调度特性

CPU访问本地内存的速度远高于访问远端内存的速度,启用vNUMA后,平台会把该虚拟机的vCPU绑定到物理CPU,内存也绑定vCPU对应的本地内存,可以保证vCPU的本地内存访问,减少跨NUMA访问内存的延迟,从而提升系统性能

HIS应用调优

业务服务器虚拟机



调整JVM参数

调整异常抛出堆栈打印的深度,从而减少性能开销,提升性能。

【约束】该值过大会直接增加异常抛出的开销,该值过小会导致复杂算法或者调用链过深的情况下,关键堆栈信息被截断,影响问题定位与调试,因此需要结合业务实际调整一个最佳的平衡值

JDK升级

若当前使用的JDK为非毕昇JDK版本,毕昇JDK基于鲲鹏架构进行适配优化,能有效提升JAVA应用性能,可以替换为同版本的毕昇JDK获取更好的性能体验。

若当前使用的JDK为毕昇JDK版本,则可以替换为兼容的高性能JDK版本以使用高级特性带来性能优化。


4.2 金仓数据库调优

概述:本实践中金仓数据库采用物理机形式部署,主要调优方向为BIOS配置项调优、操作系统调优、磁盘IO调优、网络系统调优、文件系统调优以及数据库参数调优,具体操作请参考金仓数据库调优参考实践

4.3 超融合调优

概述:针对超融合虚拟化平台,在物理机侧调整BIOS特性,在虚拟化平台侧使能平台特性进行性能优化。

4.3.1 物理机BIOS调优

4.3.1.1 设置CPU高性能模式

4.3.1.1.1 优化思路

CPU性能模式通常指将CPU频率固定在最高值,以最大化其性能的设置,开启CPU性能模式,无动态调频,固定在标称频率,可以提升事务处理性能。

4.3.1.1.2 优化示例

步骤 1   服务器重启,进入BIOS,依次选择“BIOS->Advanced->Performance Config->Power Policy”

步骤 2   设置“Power Policy”选项为“Performance”,按F10保存BIOS配置。

          ----结束↵

图1 CPU模式设置示意图

4.3.1.2 开启SMT超线程

4.3.1.2.1 优化思路

开启SMT超线程,每个物理核分为两个逻辑核,提升整机性能。

注意:该调优项仅适用于鲲鹏920新型号服务器,对于其他鲲鹏服务器暂不支持该配置。


4.3.1.2.2 优化示例

步骤 1  服务器重启,进入BIOS,依次选择“Advanced>Power and Performance Configuration>CPU PM Control>SMT2”,按Enter进入。

步骤 2  将“SMT2”设置为“Enabled”,按F10保存BIOS配置并退出。

             ----结束↵

图1 开启SMT超线程设置示意图


4.3.2 超融合虚拟化平台特性使能

4.3.2.1 启用CPU独占特性

4.3.2.1.1 优化思路

CPU独占功能使虚拟机的vCPU独占其使用的物理CPU线程,此时其他的虚拟机vCPU将不会被调度到该线程;开启CPU独占功能,可以保证虚拟机在极限情况下的稳定性,但将会降低物理CPU的实际利用率。

4.3.2.1.2 优化示例

说明:优化以深信服超融合平台为例,其他平台可能有差异。该特性在深信服超融合平台默认不启用,需要手动勾选

步骤 1   登录超融合平台,选择"虚拟机"页签,选中需要修改配置的虚拟机,点击"编辑"

步骤 2  在虚拟机配置编辑页面选择"硬件"页签, 勾选启用CPU独占

           ----结束

4.3.2.2 启用NUMA调度特性

4.3.2.2.1 优化思路

CPU访问本地内存的速度远高于访问远端内存的速度,启用vNUMA后,平台会把该虚拟机的vCPU绑定到物理CPU,内存也绑定vCPU对应的本地内存,可以保证vCPU的本地内存访问,不会跨NUMA节点,比跨NUMA访问内存可提升20%的性能。

4.3.2.2.2 优化示例

说明:优化以深信服超融合平台为例,其他平台可能有差异。该特性在深信服超融合平台默认启用。

步骤 1   登录超融合平台,选择"虚拟机"页签,选中需要修改配置的虚拟机,点击"编辑"

步骤 2   在虚拟机配置编辑页面选择"硬件"页签, 勾选启用NUMA

           ----结束

4.4 HIS应用调优

概述:针对HIS医疗系统基于JAVA语言开发的特点,进行JDK升级以及JVM参数调优,提升应用运行性能。

4.4.1 JDK升级

4.4.1.1 优化思路

若当前使用的JDK为非毕昇JDK版本,毕昇JDK基于鲲鹏架构进行过适配优化,能有效提升JAVA应用性能,可以替换为同版本的毕昇JDK获取更好的性能体验。

若当前使用的JDK为毕昇JDK版本,则可以替换为兼容的高性能JDK版本以使用高级特性带来性能优化。

4.4.1.2 优化示例

本实践使用的JDK版本为毕昇JDK8, 可以采用毕昇JDK融合版本进行替换,同时毕昇JDK融合版本兼容开源openJDK 8


步骤 1   下载毕昇JDK软件包

           毕昇融合JDK下载链接如下:

           下载链接

步骤 2   解压下载后的软件包

unzip bisheng-jdk8u462-b22-fusion-linux-aarch64.tar.gz

步骤 3   将软件包复制到/usr/local目录下

cp -r /home/bisheng-jdk8u462-b22-fusion /usr/local/bisheng_jdk_fusion

步骤 4   在/etc/profile.d下新建sh脚本文件,设置系统级变量

vim /etc/profile.d/bisheng_jdk_fusion.sh

           在脚本文件中写入

export JAVA_HOME=/usr/local/bisheng_jdk_fusion
export PATH=$JAVA_HOME/bin:$PATH

步骤 5   执行source命令生效环境变量

source /etc/profile.d/bisheng_jdk_fusion.sh

           ----结束↵


4.4.2 JVM参数调优

4.4.2.1 优化思路

JVM 参数调优需结合 HIS 应用实际运行情况(内存使用率、Java 热点函数、GC 日志等)综合分析,本次重点优化MaxJavaStackTraceDepth参数:该参数控制异常抛出时的堆栈打印深度,默认值 1024,该值越小性能相对越好,追求性能较优的情况下推荐值为10。

该值过大会增加异常抛出开销,过小会导致关键堆栈信息截断,影响问题排查,应用该项调优时需要结合业务实际调整一个最佳的平衡值。

4.4.2.2 优化示例

根据当前HIS系统业务特点,客户认为不影响他们进行堆栈信息问题定位情况下的最优值为50, 修改以下JVM参数:MaxJavaStackTraceDepth=50

一般在启动JAVA应用时带JVM参数,如java [JVM参数]  -jar  应用.jar

java -MaxJavaStackTraceDepth=50 -jar xxx.jar


本页内容