登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
11月29日 Gitee Talk | 模力方舟 AI 沙龙深圳站:看懂算力到应用的下一个主战场!点击立即报名~
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
1
Star
0
Fork
0
徐羿
/
notes
代码
Issues
7
Pull Requests
0
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
智能调优的问题
待办的
#IB8K7F
徐羿
拥有者
创建于
2024-12-03 09:52
在所有类型的软件中,操作系统可能是最错综复杂的软件,也是每个计算机系统的核心软件。这是由于大部分应用程序都运行于操作系统之上,由操作系统提供软硬件资源管理,并为应用程序的执行提供受保护的环境。因此,操作系统的设计会直接影响其上面运行的所有应用。传统意义上,操作系统是由专业的操作系统工程师通过长期、反复的工程实践构建而成的,设计时需要不断权衡使用场景,确保当前设计对大部分通用场景都是有益的。绝大多数的操作系统(如Linux和Windows)采用的正是这种通用设计。当某个功能机制无法保证对所有场景均有益时,设计者就会在系统中提供一个可配置参数,并确保该参数的默认配置对大部分通用场景有益,而使用者通过更改参数配置来满足特定的使用场景需求。这种设计带来的问题也就显而易见,对于不同的硬件和不同的应用,使用默认参数配置只能保证整个系统勉强可用,无法充分发挥软硬件的性能。 系统调优一直是一个门槛很高的系统性工程,高度依赖工程师的技能和经验。例如,一个简单的应用,除了自身代码外,支撑其运行的环境,如硬件平台、操作系统、数据库等都可能是影响其性能的重要因素。如何在众多因素中找到性能瓶颈,需要工程师们熟悉大量参数的含义、配置方法以及业务场景,并不断积累经验,才能对系统进行快速精准调优。目前,IT系统中的系统调优主要通过系统调优工程师进行正向白盒调优,其调优过程包括:性能调优场景以及指标确认→业务建模→关键能力诉求分析→性能测试→性能瓶颈识别→优化效果验证。其中,性能瓶颈识别和优化效果验证(参数调节)通常是最耗时的阶段,且充满了许多重复工作。 openEuler操作系统是基于Linux内核的,而Linux内核是一个面向通用场景设计的宏内核。随着几十年来硬件和软件应用的不断发展,Linux内核正变得越来越复杂,而整个操作系统也变得越来越庞大。在openEuler操作系统中,仅sysctl命令(用于运行时配置内核参数的命令)的参数(sysctl -a | wc -l)就超过1000个,而完整的IT系统从最底层的CPU、加速 器、网卡,到编译器、操作系统、中间件框架,再到上层应用,可调节对象超过7000个。此外,不同参数的调节空间也不同。有些参数只是功能的开关,例如,/proc/sys/kernel/ numa_balancing(启用自动NUMA平衡的配置参数)只有0和1两个可选配置,对这类参数的调节通常只需要进行两次验证。而有些参数则是一个很大连续区间,例如,/proc/sys/net/core/wmem_max(最大的TCP数据接收窗口参数),这类参数的调节则需要大量验证。当然,参数对系统性能的影响也各不相同,有些参数对系统性能可能是没有影响的,而有些参数对系统性能具有很大的影响。在会影响系统性能的参数中,每个参数对系统性能的影响效果又不同,不同参数的调节甚至会相互影响。在这样的情况下,让系统工程师或运维人员去做系统调优是非常困难和耗时的。
在所有类型的软件中,操作系统可能是最错综复杂的软件,也是每个计算机系统的核心软件。这是由于大部分应用程序都运行于操作系统之上,由操作系统提供软硬件资源管理,并为应用程序的执行提供受保护的环境。因此,操作系统的设计会直接影响其上面运行的所有应用。传统意义上,操作系统是由专业的操作系统工程师通过长期、反复的工程实践构建而成的,设计时需要不断权衡使用场景,确保当前设计对大部分通用场景都是有益的。绝大多数的操作系统(如Linux和Windows)采用的正是这种通用设计。当某个功能机制无法保证对所有场景均有益时,设计者就会在系统中提供一个可配置参数,并确保该参数的默认配置对大部分通用场景有益,而使用者通过更改参数配置来满足特定的使用场景需求。这种设计带来的问题也就显而易见,对于不同的硬件和不同的应用,使用默认参数配置只能保证整个系统勉强可用,无法充分发挥软硬件的性能。 系统调优一直是一个门槛很高的系统性工程,高度依赖工程师的技能和经验。例如,一个简单的应用,除了自身代码外,支撑其运行的环境,如硬件平台、操作系统、数据库等都可能是影响其性能的重要因素。如何在众多因素中找到性能瓶颈,需要工程师们熟悉大量参数的含义、配置方法以及业务场景,并不断积累经验,才能对系统进行快速精准调优。目前,IT系统中的系统调优主要通过系统调优工程师进行正向白盒调优,其调优过程包括:性能调优场景以及指标确认→业务建模→关键能力诉求分析→性能测试→性能瓶颈识别→优化效果验证。其中,性能瓶颈识别和优化效果验证(参数调节)通常是最耗时的阶段,且充满了许多重复工作。 openEuler操作系统是基于Linux内核的,而Linux内核是一个面向通用场景设计的宏内核。随着几十年来硬件和软件应用的不断发展,Linux内核正变得越来越复杂,而整个操作系统也变得越来越庞大。在openEuler操作系统中,仅sysctl命令(用于运行时配置内核参数的命令)的参数(sysctl -a | wc -l)就超过1000个,而完整的IT系统从最底层的CPU、加速 器、网卡,到编译器、操作系统、中间件框架,再到上层应用,可调节对象超过7000个。此外,不同参数的调节空间也不同。有些参数只是功能的开关,例如,/proc/sys/kernel/ numa_balancing(启用自动NUMA平衡的配置参数)只有0和1两个可选配置,对这类参数的调节通常只需要进行两次验证。而有些参数则是一个很大连续区间,例如,/proc/sys/net/core/wmem_max(最大的TCP数据接收窗口参数),这类参数的调节则需要大量验证。当然,参数对系统性能的影响也各不相同,有些参数对系统性能可能是没有影响的,而有些参数对系统性能具有很大的影响。在会影响系统性能的参数中,每个参数对系统性能的影响效果又不同,不同参数的调节甚至会相互影响。在这样的情况下,让系统工程师或运维人员去做系统调优是非常困难和耗时的。
评论 (
1
)
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
未关联
master
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)
1
https://gitee.com/buaa-xy/notes.git
git@gitee.com:buaa-xy/notes.git
buaa-xy
notes
notes
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册