极具“杀伤力”的性能调优,从几个思路说起

极具“杀伤力”的性能调优,从几个思路说起,第1张

极具“杀伤力”的性能调优,从几个思路说起

作者:宋

将应用程序部署到服务器后,可能会出现一些性能问题,例如高CPU利用率和降低的I/O吞吐量。这时候就需要优化应用了。性能调优是一个复杂的过程,包括建立基准、压力测试、确定瓶颈、实施优化和确认优化五个步骤。调优过程对程序员的知识结构要求非常高,需要对硬件、 *** 作系统(OS\JVM)、应用等方面非常熟悉。

鲲鹏920处理器(兼容ARM架构)的整体设计思路是通过“多核”实现强大的性能。如果内核更多,每个插槽2NUMA,L3缓存线为128字节。以上是芯片的一些特性,这些特性也会对性能调优产生不同的影响。

1月11日,华为鲲鹏开发者技术沙龙——杭州站,来自华为的四位技术专家分享了四个话题,分别是基于鲲鹏处理器的性能调优;鲲鹏的大数据优化实践;A-Tune自调技术:iSulad容器引擎的分享与实践。话题分享之后,接下来是最受欢迎的现场编码环节。华为技术专家现场演示,指导开发者实践。

与会者合影留念。

鲲鹏处理器的性能调优思路

第一位分享嘉宾是华为智能计算高级工程师苏林。他指出性能调优是一个长期的过程,并建议开发者选择一个合理的性能调优平衡点,只有最合适的才能达到最佳性能。对于鲲鹏处理器来说,第一个是NUMA架构,第二个是L3Cacheline,对性能影响很大。

鲲鹏处理器支持NUMA架构。通过适当的性能调优,不仅可以获得良好的性能,还可以解决SMP架构下的总线瓶颈问题,提供更强的多核可扩展性和更好更灵活的计算能力。

注意Cacheline的伪共享。鲲鹏920和x86之间的Cacheline大小不同,这可能导致优化后的程序在X86上运行在鲲鹏920上时性能较低。有必要再次修改业务代码数据内存对齐大小。x86Cacheline的大小为64字节,鲲鹏920的大小为128字节。

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

鲲鹏处理器支持NUMA(Non-uniformmemoryaccess)架构,可以很好地解决SMP技术对CPU内核的限制。NUMA架构将多个内核组合成一个节点,每个节点相当于一个对称多处理器(SMP),一个CPU的节点通过片上网络相互通信。不同的CPU使用Hydra接口实现高带宽、低延迟的片间通信。在NUMA架构下,整个内存空是物理分布的,所有这些内存的集合就是整个系统的全局内存。每个内核访问内存的时间取决于内存相对于处理器的位置,因此访问本地内存(在该节点中)会更快。

NUMA建筑的特点

你可以看到不同NUMACPU内核访问同一个位置的内存,性能是不一样的。内存访问延迟从高到低依次为:跨CPU>:跨NUMA但不跨CPU>:NUMA,所以在应用运行时,需要尽可能避免跨NUMA访问内存,这可以通过设置线程的CPU亲和度来实现。

NUMA配置方法

CPU、内存、网卡、磁盘,这四个模块,系统为我们提供了一些性能分析的工具。

系统瓶颈判断

鲲鹏的大数据优化实践

第二位分享嘉宾是华为鲲鹏大数据解决方案高级工程师程硕峰。他向开发者介绍了鲲鹏大数据的完整生态,并分享了移植开源大数据平台Ambari+HDP组件的经验。最后介绍鲲鹏开发者工具包,可以对海量代码进行快速扫描分析,为代码迁移提供专业指导,并对迁移后的系统性能进行全面分析和可视化,大大提高软件开发者的迁移和调优效率。

华为鲲鹏大数据解决方案高级工程师程硕峰

从下图可以看出,鲲鹏的大数据生态非常完善。在大数据领域,各方面都有一定的支持。硬件部分,泰山提供泰山2280100/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调自调技术详解

第三位分享嘉宾是华为2012实验室高级工程师谢志鹏。性能调优代表时间和成本的支出。工程师往往需要搭建测试工具寻找瓶颈,依靠人工巡视寻找故障原因,安装各种监控工具,汇总分析几十个数据。改善系统性能可能需要几个工程师几周的时间。

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

即使实验室中的调优已经达到了预期的效果,但是在真实的业务环境中,业务负载总是会动态变化的,工程师的调优工作只能应对静态负载场景,而对动态负载场景却无能为力。

当前系统调优的两个主要难点是:

如何让 *** 作系统感知上层业务?

如何降低手动调优的成本

基于openEuler的自调优系统A-Tune,利用系统画像技术,识别业务匹配的最佳资源模型,实时响应业务特性的变化。目前,系统画像技术有两个关键点。首先是感知技术。如何建立系统画像?主要是通过分类和聚类相结合的方式,分别对CPU、IO、网络、内存进行聚类,然后通过一些具体的业务进行一些细致的分类,达到业务精准识别的效果。

系统画像构建与感知技术

第二个重点,基于机器学习算法的调优参数搜索技术,做了机器学习中贝叶斯优化算法的自动调优参数搜索技术。工程师只需要提供一组他认为会对我们的经营业绩产生影响的参数,以及参数范围。接下来告诉我们的机器学习算法这些参数和参数范围,并给出评价指标。

分享和实践isulad

第四位分享嘉宾是华为iSula容器团队的架构师蔡威。根据Sysdig的《容器使用报告2019》,在容器密度方面,与2018年相比,每个主机中的容器密度增加了100%,从15个增加到30个,最大节点密度达到了250个。边缘资源是敏感的,只为容器基础设施留下少数资源,因此更轻、更快的容器引擎即将出现。

华为iSula容器团队架构师蔡威

ULA是一个完整的容器软件堆栈,包括引擎、网络、存储、工具集和容器 *** 作系统。ULAD作为轻量级容器引擎之一,可以为各种场景提供最灵活、稳定、安全的底层支持,并一直开源给大家使用。开源地址:https://gitee.com/openeuler/iSulad

ISulad有四个特点:轻、快、易、巧:

轻:iSulad的第一个使用场景是在端侧设备和智能相机上使用容器,实现快速简单的切换算法应用部署的功能。

快速:用C/C++语言实现,具有运行速度快,低噪底的特点。此外,LXC运行时出色的并发设计也为iSulad的并发性能提供了基石。

易:iSulad为了方便开发者迁移,准备开发一系列迁移工具,帮助开发者将应用顺利迁移到iSulad。

凌:根据不同的使用场景,提供不同的模式供你组合切换。开发者可以根据自己的使用需求,在注重性能的性能模式和注重资源占用的轻模式之间灵活配置和切换。

伊苏拉德的建筑

暖调练习

最后的调优实践是最热情的,开发者真的有最忠诚的技术信仰。每个讲师身边都有一群开发人员,从系统配置和调优想法到性能优化和故障分析。每个开发者都沉浸在浓厚的技术讨论氛围中,我们也采访了几位开发者。

浓厚的技术讨论氛围

Q1:你今天参加了哪个练习小组?你觉得这次沙龙技术练习怎么样?

答:我参加了伊苏拉镜,整体议程感觉很好。做法很好,让我们马上就能感受到这个产品怎么样。前面是理论课,后面马上能用,看得见摸得着。这很好。

Q2:你希望在未来听到更多关于鲲鹏科技沙龙的内容?

答:多使用指导性内容,因为工作中会用到。比如鲲鹏可以把系统级部门和大数据部门联合起来研究,结合大数据应用系统进行讲解,会产生更好的效果。这在应用上会更有指导意义。

温馨编码练习链接

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/750072.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-29
下一篇 2022-04-29

发表评论

登录后才能评论

评论列表(0条)

保存