性能调优五步法

天翼云开发者社区
• 阅读 228

本文分享自天翼云开发者社区《性能调优五步法》,作者:x****n

Linux 内核从 2.5 版本开始针对 NUMA 架构做了大量优化工作,同时也提供了丰富的工具和接口,可以帮助我们很容易的完成访问本地内存的设置。所以,通过适当的性能调优,可以提供更高的计算能力。

性能优化通常可以通过五个步骤完成

1.确认基线 性能优化第一步是确定当前性能,并明确性能应提升的程度。如果系统性能不佳,我们就需要花时间进行研究分析,但如果系统性能接近其峰值,那可优化的空间就微乎其微。性能基线必须是一种客观可度量的指标,在明确如何度量特定系统或者应用程序的性能后,在调整和优化之前,运行应用程序并记录其性能,这就是基线值。在记录应用程序基线的同时我们需要对整个系统部件进行基准监控,包括CPU、内存、IO、网络吞吐、响应延时等系统运行数据。

2.压力测试 采用应用系统加压或者标准的压力工具对系统进行压力测试,使用性能监控工具观察系统运行状态,详细记录系统运行数据,精确的历史记录有利于我们定位系统瓶颈及确定后续优化手段是否有效的重要依据

3.监控瓶颈 系统在压力状态下,采用监控工具进行监控是为了确定系统的瓶颈(即可以优化的突破点)。系统的瓶颈通常在CPU过于繁忙、IO等待、网络等待、内存访问延迟高等方面出现。在测试过程中,我们不仅需要关注被测系统本身,同样需要注意是否由于硬件连接问题而导致性能异常。

4.瓶颈优化 确定系统瓶颈所在之后,接下来需要对瓶颈进行优化。瓶颈的优化是一个复杂的系统工程,我们必须在每一次调试后进行性能监控及系统状态的记录,已确保我们调试优化的方向,很多时候优化是需要多方面同步进行的,并非单一因素作用即可达到目标。在优化过程中我们也需要做好回滚的准备,保障系统的正常运行及可测量性。本文总结了一些常见的系统瓶颈及优化方案,供大家参考。

5.确认优化效果 实施优化方案后,重新进行压力测试,通过监控工具确认瓶颈是否消除,系统性能是否达到目标。若瓶颈依旧存在,系统性能指标未提升,则需要重新进行5步法,若瓶颈消除,系统性能指标达到目标,则需详细记录优化方案,后续作为标准文档进行输出应用。

点赞
收藏
评论区
推荐文章
GoCoding GoCoding
3年前
Linux 性能相关工具
来自Netflix性能优化大牛BrendanGregg的整理。观测分析测试调优参考
基于Spring Cache实现Caffeine、jimDB多级缓存实战
在早期参与涅槃氛围标签中台项目中,前台要求接口性能999要求50ms以下,通过设计Caffeine、ehcache堆外缓存、jimDB三级缓存,利用内存、堆外、jimDB缓存不同的特性提升接口性能,内存缓存采用Caffeine缓存,利用WTinyLFU算法获得更高的内存命中率;同时利用堆外缓存降低内存缓存大小,减少GC频率,同时也减少了网络IO带来的性能消耗;利用JimDB提升接口高可用、高并发;后期通过压测及性能调优999性能<20ms
咕咕鸡 咕咕鸡
2年前
常用性能调优策略及在风控场景下应用
引言性能调优也是有迹可寻的,本文梳理了在实际开发过程中沉淀的通用性能优化策略,并且结合风控系统服务内使用场景,帮助读者理解性能调优相关可行策略,从而建立性能优化SOP概念,以后出现问题即可参照优化流程改造即可。<!
Stella981 Stella981
3年前
Linux上TCP的几个内核参数调优
Linux作为一个强大的操作系统,提供了一系列内核参数供我们进行调优。光TCP的调优参数就有50多个。在和线上问题斗智斗勇的过程中,笔者积累了一些在内网环境应该进行调优的参数。在此分享出来,希望对大家有所帮助。调优清单好了,在这里先列出调优清单。请记住,这里只是笔者在内网进行TCP内核参数调优的经验,仅供参考。同时,笔者还会在余下的博客里面
Stella981 Stella981
3年前
JVM性能调优监控工具jps、jstack、jmap、jhat、jstat使用详解
    JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。  现实企业级Java(https://www.oschina.net/action/GoTo
Stella981 Stella981
3年前
JVM性能调优详解
前面我们学习了整个JVM系列,最终目标的不仅仅是了解JVM的基础知识,也是为了进行JVM性能调优做准备。这篇文章带领大家学习JVM性能调优的知识。性能调优性能调优包含多个层次,比如:架构调优、代码调优、JVM调优、数据库调优、操作系统调优等。架构调优和代码调优是JVM调优的基础,其中架构调优是对系统影响最大的。性能调优基本上按照以下
Stella981 Stella981
3年前
Redis 基础、高级特性与性能调优
本文将从Redis的基本特性入手,通过讲述Redis的数据结构和主要命令对Redis的基本能力进行直观介绍。之后概览Redis提供的高级能力,并在部署、维护、性能调优等多个方面进行更深入的介绍和指导。本文适合使用Redis的普通开发人员,以及对Redis进行选型、架构设计和性能调优的架构设计人员。目录概述
Stella981 Stella981
3年前
JVM调优之经验
在生产系统中,高吞吐和低延迟一直都是JVM调优的最终目标,但这两者恰恰又是相悖的,鱼和熊掌不可兼得,所以在调优之前要清楚舍谁而取谁。一般计算任务和组件服务会偏向高吞吐,而web展示则偏向低延迟才会带来更好的用户体验。本文从性能和经验上来分享一下JVM参数的设置。调优之前可以先用XX:PrintFlagsFinal来查看虚拟机是否默认开启某
Stella981 Stella981
3年前
JVM参数及调优
调优基本概念在调整JVM性能时,通常有三个组件需要考虑:1.堆大小调整2.垃圾收集器调整3.JIT编译器大多数调优选项都与调整堆大小和选择合适的垃圾收集器有关,JIT编译器对性能也有很大影响,但很少需要对其进行调优,尤其是针对较新版本的JVM。通常,在进行Java程序调优的时候,会重点关注两个主要指标:响应
子桓 子桓
1年前
中文支持m1 JProfiler 13 下载 JProfiler 13 安装教程
JProfiler13是一款用于Java应用程序性能分析和调优的强大工具。它提供了丰富的功能和工具,帮助开发者深入了解和优化Java应用程序的性能,并发现和解决潜在的性能问题。以下是JProfiler13的一些主要功能和特点:1.实时性能分析:JProfi
天翼云开发者社区
天翼云开发者社区
Lv1
天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。
文章
675
粉丝
15
获赞
40