随着现代社会信息化、智能化的飞速发展,愈来愈多的设备接入互联网、物联网、车联网,从而催生了庞大的计算需求。可是功耗墙问题以功耗和冷却两大限制极大的影响了单核算力的发展。为了知足智能世界快速增加的算力需求,多核架构成为最重要的演进方向。性能优化
传统的多核方案采用的是SMP(Symmetric Multi-Processing)技术,即对称多处理器结构,如图1-1所示。在对称多处理器架构下,每一个处理器的地位都是平等的,对内存的使用权限也相同。任何一个程序或进程、线程均可以分配到任何一个处理器上运行,在操做系统的支持下,能够达到很是好的负载均衡,让整个系统的性能、吞吐量有较大提高。可是,因为多个核使用相同的总线访问内存,随着核数的增加,总线将成为瓶颈,制约系统的扩展性和性能。网络
图1-1 对称多处理器SMP架构架构
鲲鹏处理器支持NUMA(Non-uniform memory access, 非统一内存访问)架构,可以很好的解决SMP技术对CPU核数的制约。NUMA架构将多个核结成一个节点(Node),每个节点至关因而一个对称多处理机(SMP),一块CPU的节点之间经过On-chip Network通信,不一样的CPU之间采用Hydra Interface实现高带宽低时延的片间通信,如图1-2所示。在NUMA架构下,整个内存空间在物理上是分布式的,全部这些内存的集合就是整个系统的全局内存。每一个核访问内存的时间取决于内存相对于处理器的位置,访问本地内存(本节点内)会更快一些。Linux内核从2.5版本开始支持NUMA架构,如今的操做系统也提供了丰富的工具和接口,帮助咱们完成就近访问内存的优化和配置。因此,使用鲲鹏处理器所实现的计算机系统,经过适当的性能调优,既可以达成很好的性能,又可以解决SMP架构下的总线瓶颈问题,提供更强的多核扩展能力,以及更好更灵活的计算能力。负载均衡
图1-2 NUMA架构分布式
性能优化一般能够经过如表1-1五个步骤完成。工具
表1-1 性能优化的通用步骤性能
序号测试 |
步骤优化 |
说明spa |
1 |
创建基准 |
在进行优化或者开始进行监视以前,首先要创建一个基准数据和优化目标。这个基准包括硬件配置、组网、测试模型、系统运行数据(CPU/内存/IO/网络吞吐/响应延时等)。咱们须要对系统作全面的评估和监控,才能更好的分析系统性能瓶颈,以及实施优化措施后系统的性能变化。优化目标便是基于当前的软硬件架构所指望系统达成的性能目标。性能调优是一个长期的过程,在优化工做的初期,很容易识别瓶颈并实施有效的优化措施,优化成果每每也很显著,可是越到后期优化的难度就越大,优化措施更难寻找,效果也将愈来愈弱。所以咱们建议有一个合理的平衡点。 |
2 |
压力测试与监视瓶颈 |
使用峰值工做负载或专业的压力测试工具,对系统进行压力测试。使用一些性能监视工具观察系统状态。在压力测试期间,建议详细记录系统和程序的运行状态,精确的历史记录将更有助于分析瓶颈和确认优化措施是否有效。 |
3 |
肯定瓶颈 |
压力测试和监视系统的目的是为了肯定瓶颈。系统的瓶颈一般会在CPU过于繁忙、IO等待、网络等待等方面出现。须要注意的是,识别瓶颈是分析整个测试系统,包括测试工具、测试工具与被测系统之间的组网、网络带宽等。有不少“性能危机”的项目实际上是因为测试工具、测试组网等这些很容易被忽视的环节所致使的,在性能优化时应该首先花一点时间排查这些环节。 |
4 |
实施优化 |
肯定了瓶颈以后,接着应该对其进行优化。本文总结了笔者所在团队在项目中所遇到的常见系统瓶颈和优化措施。咱们须要注意的是,系统调优的过程是在曲折中前进,并非全部的优化措施都会起到正面效果,负优化也是常常遇到的。因此咱们在准备好优化措施的同时,也应该准备好将优化措施回滚的操做指导。避免由于实施了一些不可逆的优化措施致使从新恢复环境而浪费大量的时间和精力。 |
5 |
确认优化效果 |
实施优化措施后,从新启动压力测试,准备好相关的工具监视系统,确认优化效果。产生负优化效果的措施要及时回滚,调整优化方案。若是有正优化效果,但未达到优化目标,则重复步骤2“压力测试与监视瓶颈”,如达成优化目标,则须要将全部有效的优化措施和参数总结、归档,进入后续生产系统的版本发布准备等工做中。 |
在性能调优经验比较少或者对系统的软硬件并非很是了解时,能够参考使用五步法的模式逐步展开性能调优的工做。对于有丰富调优经验的工程师,或者对系统的性能瓶颈已经有深刻洞察的专家,也能够采用其余方法或过程展开优化工做。