极具杀伤力的功能调优从几个思路说起

责任编辑。陈微竹0371 2020-01-14 15:15:28浏览次数:2137  

在运用程序布置到服务器上今后,或许会出现 CPU 占用率过高,I/O 吞吐量下降等功用问题,此刻,就需求对程序进行优化。功用调优是一个很杂乱的进程,包含树立基准、压力测验、承认瓶颈、施行优化、承认优化这 5 个进程。调优进程对程序员的知识结构要求十分高,需求十分了解硬件、操作体系 (OSJVM)、运用程序等多个方面。

鲲鹏 920 处理器(兼容 ARM 架构)的全体规划思路便是经过“多核”取得强悍功用。具有更多的核数,2NUMA/Socket,L3 Cacheline 为 128 Byte。这些都是芯片的一些特性,这些特性关于功用调优也会发生不同的影响。

1 月 11 日,华为鲲鹏开发者技能沙龙 - 杭州站,来自华为的四位技能专家同享了四个议题,分别是—依据鲲鹏处理器的功用调优;鲲鹏大数据优化实践;A-Tune 自调优技能详解;iSulad 容器引擎同享与实践。议题同享完毕后,紧接着便是最受咱们欢迎的现场编码环节。华为技能专家现场演示并辅导开发者进行实操。

参会者们合影留念

鲲鹏处理器的功用调优思路

第一位同享嘉宾是,华为智能核算高级工程师苏林。他指出功用调优是一个长时刻的进程,主张开发者们挑选一个合理的功用调优平衡点,只要最合适的才干到达最好的功用。以鲲鹏处理器来说,对功用影响比较大的两个特性,第一个是 NUMA 架构,第二个是 L3 Cacheline。

鲲鹏处理器支撑 NUMA 架构,经过恰当的功用调优,既能够到达很好的功用,又能够处理 SMP 架构下的总线瓶颈问题,供给更强的多核扩展才能,以及更好更灵敏的核算才能。

留意 Cacheline 伪同享,鲲鹏 920 和 x86 的 Cacheline 巨细不一致,或许会出现在 X86 上优化好的程序在鲲鹏 920 上运转时的功用偏低的状况,需求从头修正事务代码数据内存对齐巨细。X86 L3 Cacheline 巨细为 64 字节,鲲鹏 920 的 Cacheline 为 128 字节。

华为智能核算高级工程师 苏林

鲲鹏处理器支撑 NUMA(Non-uniform memory access, 非统一内存拜访)架构,能够很好的处理 SMP 技能对 CPU 核数的限制。NUMA 架构将多个核结成一个节点 (Node),每一个节点适当所以一个对称多处理机(SMP),一块 CPU 的节点之间经过 On-chip Network 通讯,不同的 CPU 之间选用 Hydra Interface 完成高带宽低时延的片间通讯,在 NUMA 架构下,整个内存空间在物理上是分布式的,所有这些内存的调集便是整个体系的大局内存。每个核拜访内存的时刻取决于内存相关于处理器的方位,拜访本地内存(本节点内)会更快一些。

NUMA 架构的特色

能够正常的看到不同 NUMA 内的 CPU core 拜访同一个方位的内存,功用不同。内存拜访延时从高到低为:跨 CPU > 跨 NUMA 不跨 CPU > NUMA 内,因此在运用程序运转时要尽或许的防止跨 NUMA 拜访内存,能够终究靠设置线程的 CPU 亲和性来完成。

NUMA 装备办法

体系的瓶颈判别,假设开发者不了解芯片,服务器怎样样去判别?从 CPU、内存、网卡、磁盘这四个模块,体系都为咱们供给了一些东西进行功用剖析。

体系的瓶颈判别

鲲鹏大数据优化实践

第二位同享嘉宾是,华为鲲鹏大数据处理方案高级工程师,程硕峰。他向开发者们介绍了鲲鹏大数据的完好生态,同享开源大数据渠道 Ambari+HDP 组件的移植经历。最终介绍了鲲鹏开发套件(Kunpeng Developer Kit)可完成对海量代码进行快速扫描和剖析,并供给专业的代码移植辅导,以及移植后全面的体系功用剖析与可视化出现,然后极大提高软件开发者移植与调优功率。

华为鲲鹏大数据处理方案高级工程师 程硕锋

从下图能够正常的看到,鲲鹏大数据生态十分完善,在大数据范畴,每个方面都有了必定的支撑,硬件部分,泰山供给了 TaiShan 2280 100/200 型服务器。芯片有鲲鹏的 916、920 芯片可供挑选,经过 24 核、32 核、48 核、64 核来满意企业对不同算力的要求。大数据组件方面能够从数据源头到数据处理、存储都能够完美支撑。当时支撑的大数据渠道有华为 Fusionlnsight,还有 Ambari,东方国信,美亚,他们将为大数据快速移植到鲲鹏渠道上来供给支撑。

鲲鹏大数据处理方案

为了将开源大数据渠道 Ambari+HDP 组件移植到泰山,都需求移植什么内容?第一类是 Jar 包,有些 Jar 包含有 So,需求在鲲鹏渠道从头编译。组件自身的 So 文件,需求从头编译。最终是可执行二进制文件,依托底层的芯片架构,需求从头编译。详细分为四个进程:

将 RPM 包分类,分为 X86_64 和 Noarch 两个类型

运用 checkSo 东西扫描 RPM

剖析 RPM 包,查询得出得出装置需求的依托软件,解压获取 rpm 中源文件、软链接,查看 /var/lib 等要害目录,比照装置前后新增的源文件、软链接。

构建 RPM 包

开源大数据渠道 Ambari+HDP 组件移植经历总结

A-Tune 自调优技能详解

第三位同享嘉宾是,华为 2012 实验室高级工程师谢志鹏。功用调优代表着时刻和本钱的开销。工程师往往需求建立测验东西找到瓶颈点,依托人工巡查看找毛病原因,装置多种监控东西,汇总剖析数十个数据,期间或许要花掉数个工程师数周的时刻,才得以提高体系功用。

华为 2012 实验室高级工程师 谢志鹏

即使是在实验室的调优到达了预期的作用,可是往往在事务运转实在环境里边,事务负载都是会动态改变,而工程师的调优作业,往往都只能应对静态负载场景,关于动态负载场景束手无策。

当时体系调优的两大痛点是:

怎样使操作体系感知上层事务

怎样下降人工调优本钱

依据 openEuler 的自调优体系 A-Tune,运用体系画像技能,能辨认事务匹配最佳资源模型,实时呼应事务特征改变。现在,体系画像技能有两个要害技能点。第一个是感知技能,怎样去构建体系画像?主要是经过分类、聚类相结合的办法,分别在 CPU、IO、网络、内存方面聚类然后经过一些详细的事务进行一些细化的分类,来到达精准辨认事务的作用。

体系画像构建与感知技能

第二个要害技能点,依据机器学习算法的调优参数查找技能关于机器学习里边的贝叶斯优化算法去做了一个调优参数的主动查找技能,工程师只需求供给一组他认为对咱们事务有功用影响的参数,以及参数规模,接下来,把这些参数和参数规模告知咱们的机器学习算法,而且给出点评目标。

iSulad 的同享与实践

第四位同享嘉宾是,华为 iSula 容器团队架构师蔡灏旻。依据 Sysdig《2019 年的容器运用报告》显现,在容器密度方面,与 2018 年比较,每台主机中的容器密度提高了 100%,从 15 个添加到了 30 个其间最大节点密度已到达了 250 个。边际节点资源灵敏,留给容器基础建设的资源寥寥无几,一个更轻量、更快速的容器引擎呼之欲出。

华为 iSula 容器团队架构师 蔡灏旻

iSula 为全量的容器软件栈,包含引擎、网络、存储、东西集与容器 OS;iSulad 作为其间轻量化的容器引擎,能够为多种场景供给最灵敏、最安稳、最安全的底层支撑,现在已开源给咱们运用。开源地址:

https://gitee.com/openeuler/iSulad

iSulad 具有轻、快、易、灵四个特色:

轻:iSulad 的第一个运用场景是在端侧设备上,在一个智能摄像头上运用容器来到达快速、简略切换算法运用布置的功用。

快:选用 C/C++ 言语完成,具有运转速度快、底噪低一级特性,且 LXC 运转时优异的并发规划也为 iSulad 并发功用供给了柱石。

易:iSulad 为了使开发者搬迁便利,正在准备开发一系列搬迁东西,协助开发者将自己的运用滑润搬迁到 iSulad 上来。

灵:针对不同的运用场景供给不同的形式供咱们组合切换,开发者能够精确的经过自己的运用需求灵敏装备切换重视功用的 performance 形式和重视资源占用的 light 形式

iSulad 的架构

火热的调优实践

最终的调优实践上机环节是最火热的,开发者们公然具有最忠诚的技能崇奉,每一位辅导老师身旁都围绕着一群开发者,从体系装备、调优思路到功用优化、毛病剖析,每一位开发者都沉浸在稠密的技能讨论气氛中,咱们也采访了几位开发者。

稠密的技能讨论气氛

Q1:请问您今日参与的实践组是?感觉本次沙龙技能实践怎样样?

A:参与了 iSula 镜像,全体的议程感觉都很好。实践环节很好能够让咱们切身,立刻感受到这个产品怎样样。前面是理论讲座,后边立刻就能运用是看得见摸得着的,这个十分好。

Q2:今后希望能听到鲲鹏技能沙龙更多内容同享的是?

A:更多运用辅导性更强的内容,由于会在作业中用到。比方鲲鹏能够联合研讨体系等级的部分和研讨大数据的部分,将大数据运用体系结合起来解说,这样能会发生更好的作用。这样运用辅导性也会更强。

火热的编码实践环节

点个在看少个 bug

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!

精彩阅读

阅读排行