医疗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

