信创操作系统层面提供的CPU性能应当如何优化?

我在相同底层硬件物理环境(Intel和海光都分别测了)下分别默认安装Centos7和国产龙蜥操作系统,用unixbench进行测试,Centos7得分能高出10%~30%,在其他国产操作系统上可能也有类似情况,有没有什么相对通用的方法或者配置可以提升操作系统对硬件资源的有效利用,提高这理论上的跑分,争取在跑分和实际体验中至少能赢一个。

参与7

3同行回答

CiaoCiao架构师某证券公司
绑定核心中断是CPU Core收到的,可以让关键线程绑定在某个Core上,然后避免各种中断源(IRQ)向这个Core发送中断。绑定程序在一个核上运行,有两种方法:taskset和sched_setaffinity,其中sched_setaffinity是程序代码对绑核的实现,我们主要介绍通过taskset进行绑核。CPU AffinityCPU亲...显示全部

绑定核心
中断是CPU Core收到的,可以让关键线程绑定在某个Core上,然后避免各种中断源(IRQ)向这个Core发送中断。
绑定程序在一个核上运行,有两种方法:taskset和sched_setaffinity,其中sched_setaffinity是程序代码对绑核的实现,我们主要介绍通过taskset进行绑核。
CPU Affinity
CPU亲和性,是指在SMP结构下,能够将一个或多个进程绑定到一个或多个处理器上运行。
查看进程分配的CPU Core,可以使用taskset命令查看:
taskset -c -p
该CPU亲和力列表表明该进程可能会被安排在3-5中任意一个CPU Core上。
更具体地查看某进程当前正运行在哪个CPU Core上,我们可以使用top命令查看:
top -p
taskset
使用taskset命令将进程绑定到指定核,比如将31693绑定到1,2,3核上
taskset -cp 1,2,3 31693
该例会将PID为31693的进程绑定到1-3核上运行。
屏蔽硬中断(硬盘、网卡)
中断源(IRQ)向CPU Core发送中断,CPU Core调用中断处理程序对中断进程处理。我们可以通过改写/proc/irq/*/smp_affinity文件,避免中断源(IRQ)向某些CPU Core发送中断。该方法对硬盘、网卡等设备引起的硬中断有效。
SMP_AFFINITY
SMP,即symmetric multiprocessing(对称多处理器),通过多个处理器处理程序的方式。smp_affinity文件处理一个IRQ的中断亲和性。我们可用/proc/irq/{IRQ_NUMBER}/smp_affinity_list来制定所需要绑定的核,这里的IRQ_NUMBER就是前面中断输出中的IRQ号,比如我们想将ens160的所有中断绑定到CPU1和CPU2。
内核参数
Watchdog
Watchdog在进行监控的过程中会触发中断,会引起抖动,可通过以下命令进行关闭:
echo 0 > /proc/sys/kernel/watchdog
sched_latency_ns
指定在发生任务切换之前,任务可以在一个 CPU 核心上运行的最长时间(以纳秒为单位)
echo 24000000 > /proc/sys/kernel/sched_latency_ns
sched_min_granularity_ns
指定了最小的时间粒度(以纳秒为单位)不会被抢占的时间,在这个时间粒度内,一个任务可以在一个 CPU 核心上运行。
echo 10000000 > /proc/sys/kernel/sched_min_granularity_ns
sched_rt_runtime_us
用于控制系统中实时任务的运行时间片(以微秒为单位),默认值为950000,总共为1000000。设置为-1则禁止这个限制。
echo -1 > /proc/sys/kernel/sched_rt_runtime_us
stat_interval
以秒为单位的更新虚拟内存统计信息的间隔。默认值是 1 秒,这导致每秒进行信息统计。将其更改为 1000 秒可以避免这些中断,至少延迟了 16 分钟。
调频策略
scaling_governor调配策略的作用是控制CPU如何管理和调整其运行频率以平衡性能和能耗,同以下命令,选择“performance”使CPU保持在最高频率,以提供最大的计算性能。
echo performance > /sys/devices/system/cpu/cpu57/cpufreq/scaling_governor

收起
证券 · 2024-04-30
浏览71
三虎三虎联盟成员系统运维工程师中国邮政储蓄银行
对于CPU的性能调优,可以从两个角度着手: 一是找出不必要的工作,降低工作负载; 二是提高目前CPU的性能上限; 对于第一种情况,通过对CPU使用的观测分析,去优化相关应用程序。常用的分析方法可以是“工具法”,“USE方法”[1]。 1)可以遍历操作系统现有的统计分析工具,如top\vmstat\mps...显示全部

对于CPU的性能调优,可以从两个角度着手:
一是找出不必要的工作,降低工作负载;
二是提高目前CPU的性能上限;
对于第一种情况,通过对CPU使用的观测分析,去优化相关应用程序。常用的分析方法可以是“工具法”,“USE方法”[1]。
1)可以遍历操作系统现有的统计分析工具,如top\vmstat\mpstat\pidstat\perf等,排序CPU占用进程、栈跟踪等;
2)使用USE方法(Utilization Saturation and Errors Method),检查CPU的使用率、饱和度、错误。
3)基于1、2结果,通过cgroup资源控制,或nice等级设定,按照用户或进程粒度,来压降某些应用的CPU占用,从而控出更多CPU资源。
第二种情况,有如下几种方式:
1)固化CPU的频率,为了节能降耗,一些设备在出厂后将CPU模式置为均衡模式,在空闲情况下CPU主频较低,需要在持续的高密集运算后升高频率。在BIOS层面,调整CPU的电源策略调整为Performance(最大性能),此时无动态调频,可保持运行在标称频率。
2)第一步完成后,确认是动态调频器是否为性能模式:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
确认值是否为performance,如果不是,则修改。
3)xc环境下,部分CPU产品的跨路访问延迟问题,相较于Intel,还是比较大的,多核 CPU 服务器,可开启 NUMA 绑核功能。在资源条件充裕的情况下,可考虑使用NUMA绑核有提高性能。通过 BIOS 选项开启绑核支持。在云环境下,需要在平台侧配置绑核;物理机层可通过numactl绑核。
4)减少进程间的CPU抢占,通过taskset与启动参数isolate隔离,将特定的core空闲出来,给指定进程使用;

参考文献:
1.Brendan gregg.性能之巅[M].第2版.徐章宁,吴寒思,余亮译.北京:电子工业出版社,2022年:242-250

收起
银行 · 2024-03-24
浏览253
howardlee0509howardlee0509联盟成员项目经理金融公司
优化操作系统层面提供的CPU性能可以通过以下方式实现:调整调度策略:优化进程和线程的调度算法,确保任务在CPU上高效运行。可以考虑使用多级反馈队列调度算法等。CPU亲和性设置:将特定的进程或线程与特定的CPU核心关联,以减少CPU核心间的上下文切换和缓存失效,提高性能。实时性...显示全部

优化操作系统层面提供的CPU性能可以通过以下方式实现:

  1. 调整调度策略:优化进程和线程的调度算法,确保任务在CPU上高效运行。可以考虑使用多级反馈队列调度算法等。
  2. CPU亲和性设置:将特定的进程或线程与特定的CPU核心关联,以减少CPU核心间的上下文切换和缓存失效,提高性能。
  3. 实时性能监控:实时监控CPU的利用率、负载和响应时间等指标,及时发现并解决性能瓶颈。
  4. 调整中断处理:优化中断处理程序,减少中断延迟和消耗,提高系统响应速度。
  5. CPU频率调节:根据负载情况动态调节CPU的频率,实现能效与性能的平衡。
  6. 内存管理优化:优化内存分配算法和页面置换策略,减少内存访问延迟,提高CPU性能。
  7. 使用多线程和并行编程:充分利用多核CPU的并行计算能力,通过多线程和并行编程技术提高CPU利用率和性能。
    通过这些优化措施,可以提高操作系统层面提供的CPU性能,提升系统的整体运行效率。
收起
证券 · 2024-03-21
浏览273

ChatGPT 回答

针对这个问题,我可以提供以下几个方面的建议:

  1. 系统调优:可以对系统进行一些调优,例如关闭不必要的服务、优化内核参数等,以提高系统的性能表现。具体的调优方法可以参考一些相关的文档或者教程。
  2. CPU性能优化:可以通过一些工具来优化CPU的性能,例如Intel的Turbo Boost Technology和海光的Turbo Boost Max Technology等。这些工具可以帮助CPU在需要时自动提高频率,以提高系统的性能表现。
  3. 硬件升级:如果硬件条件允许,可以考虑升级硬件,例如更换更快的CPU、更大的内存等,以提高系统的性能表现。
  4. 选择合适的操作系统:在选择操作系统时,可以考虑一些性能更好的操作系统,例如CentOS、Ubuntu等,以提高系统的性能表现。
  5. 使用优化工具:可以使用一些优化工具来提高系统的性能表现,例如Sysbench、Phoronix Test Suite等。这些工具可以帮助用户评估系统的性能表现,并提供一些优化建议。

总之,要提高操作系统对硬件资源的有效利用,需要从多个方面入手,包括系统调优、CPU性能优化、硬件升级、选择合适的操作系统以及使用优化工具等。

提问者

我不要昵称
系统工程师某财产保险
擅长领域: 信创信创云服务器

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2024-03-20
  • 关注会员:4 人
  • 问题浏览:1112
  • 最近回答:2024-04-30
  • X社区推广