暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

国产操作系统性能优化的挑战与方法

信创新态势 2025-03-17
326

01.

操作系统性能优化背景

随着国产化服务器操作系统推广普及,由于国产操作系统基于Linux内核,且信创操作系统一般会运行在arm等非x86架构的cpu之上,在性能调优方面资料欠缺。
例如,使用arm的cpu,通常numa架构下会有很多numa节点,相较于x86来说,arm numa本地内存就少很多,对于需要大内存,高性能访问内存的场景就会产生性能问题多数系统性能,优化手段都可以借鉴以往红帽等操作系统的运维经验,但是由于是基于内核,稳定性不如现有商业发行版,而且目前国产操作系统的技术支持弱于传统厂商
在日常运维偶尔会发现内核崩溃,基础服务bug等问题,这些目前只能在一定周期的积累下,修复产品问题,等待一个稳定版本。

目前国产操作系统在性能优化方面的挑战,是软硬件之间独立开发,完成后再进行适配,没有根据彼此特性进行调优。目前操作系统层优化,还是在原x86的经验上提出的,也没有形成如ARM架构的,或者国产芯片等特有的调优方案。
主要还是传统的调优方式,也如题所述,国产化道路上的优化什么时候能走出自己的路,还需要一定时间的沉淀和积累。
02.

如何优化

目前主要的优化思路主要是根据系统上部署的软件进行调优以及BIOS调优。

一、BIOS调优:关闭SR-IOV(Single Root I/O Virtualization),关闭虚拟化,Power Regulator:Static High Performance,No C-states模式等等。

还有一点需要注意的是,arm cpu由于numa节点众多,单节点本地内存数量有限,对于大内存访问如数据库等,会存在跨节点内存访问,或者本地内存耗尽导致使用swap的情况,对于大内存访问的应用建议将arm的numa特性关闭。

二、CPU层面的调优:

对于CPU的性能调优,可以从两个角度着手:

1、是找出不必要的工作,降低工作负载;

  通过对CPU使用的观测分析,去优化相关应用程序。常用的分析方法可以是“工具法”,“USE方法”。

  •  可以遍历操作系统现有的统计分析工具,如 top\vmstat\mpstat\pidstat\perf 等,排序CPU占用进程、栈跟踪等;

  •  使用USE方法(Utilization Saturation and Errors Method),检查CPU的使用率、饱和度、错误。

  •  基于1、2结果,通过cgroup资源控制,或nice等级设定,按照用户或进程粒度,来压降某些应用的CPU占用,从而控出更多CPU资源。


2、是提高目前CPU的性能上限;

  1)固化CPU的频率,为了节能降耗,一些设备在出厂后将CPU模式置为均衡模式,在空闲情况下CPU主频较低,需要在持续的高密集运算后升高频率。在BIOS层面,调整CPU的电源策略调整为Performance(最大性能),此时无动态调频,可保持运行在标称频率。

  2)确认是动态调频器是否为性能模式:

cat sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

确认值是否为performance,如果不是,则修改。

  3)信创环境下,部分CPU产品的跨路访问延迟问题,相较于Intel,还是比较大的,多核 CPU 服务器,可开启 NUMA 绑核功能。在资源条件充裕的情况下,可考虑使用NUMA绑核有提高性能。通过 BIOS 选项开启绑核支持。在云环境下,需要在平台侧配置绑核;物理机层可通过numactl绑核。

  4)减少进程间的CPU抢占,通过taskset与启动参数isolate隔离,将特定的core空闲出来,给指定进程使用。

3、根据不同的芯片考虑不同的优化方案:

下针对飞腾芯片,进行如下优化:

1、关闭SMMU:使用SMMU的地址转换功能,在硬盘达到一定峰值时,可能会出现掉盘问题,需在操作系统层面关闭SMMU。对于个别品牌服务器,开启SMMU可能会导致RAID卡故障,建议在BIOS中关闭SMMU。

2、升级内核

1) SMMU内核补丁:解决设备分组问题,在操作系统下看PCIE设备默认在一个分组,虚拟化设备透传无法实现,打补丁解决PCIE设备在操作系统内分组问题,以支持虚拟化设备透传功能;

2) 增加飞腾芯片支持:在飞腾S2500服务器上主要解决了对双路的支持问题;

3) 飞腾中断堆积补丁:解决在中断数量很多的场景下中断堆积在一个CPU核心的问题,均分中断到其他CPU核心;

4) 飞腾kdump功能开启:解决kdump功能在S2500服务器无法正常使用的问题;

5) 飞腾kdump功能补丁:解决在一定场景下vmcore无法存储的问题,作用为保证kdump的内核在每个socket上都有核心启动;

6) 飞腾S系列服务器中断控制器驱动更新:S系列服务器中断控制器逻辑优化。

3、网卡中断CPU核优化

默认情况下,Linux中断响应会被平均分配到所有CPU核心上,势必会发生写新的数据和指令缓存,并与CPU核心上原有进程产生冲突,造成中断响应延迟,影响进程处理时间。为了解决问题,可以将中断(或进程)绑定到指定CPU核心上,从而提高中断响应(或进程)的处理速度。

相比使用内核的irqbalance(中断均衡)使网卡中断在所有核上进行调度,使用手动绑核将网卡中断绑定在固定的核,能有效改善网络情况。

4、JDK优化

在ARM架构下,推荐使用华为毕昇JDK来代替OpenJDK。毕昇JDK在ARM架构上进行了性能优化和稳定性增强,在ARM架构上更稳定,在大数据等场景下可以获得更好的性能。

PS:最后,希望这篇文章能对您有所裨益,别忘了点”,欢迎评论区交流

声明:个人观点,仅供参考             


推荐阅读

1.信创名录、信创产品目录、信创标准,信创产品之间关系

2.国产操作系统技术选型和对比分析

3.国产信创外设适配问题及适配清单

4.信创名录取消的背景下,如何认定信创产品自主可控

5.信创标准之《政府采购需求标准》一文解读

6.浅谈信创适配验证和信创实验室建设

7.第一批安全可靠测评结果(1-2023)

8.国产信创操作系统的电脑,能运行windows程序吗
9.信创=国产化?一文带你快速了解信创和国产化
10.信创与开源矛盾?开源软件在信创项目中能使用吗?(附开源软件清单)
11.安全可靠测评结果(2024年第1号)文件之解读
12.信创适配改造成本如何估算?(附标准)
13.国产信创CPU、操作系统安全可靠测评结果最新名单(1-2024)
14.国产信创PC电脑汇总
15.如何选购信创电脑

最后,别忘了点“在看”

文章转载自信创新态势,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论