性能优化思路及常用工具及手段

性能优化是降低成本的手段之一,每年大促前业务平台都会组织核心链路上的应用做性能优化,一方面提升系统性能,另外一方面对腐化的代码进行清理。现结合业务平台性能优化的经验,探讨一下性能优化的思路及常用工具及手段。性能优化本质上是对资源的合理利用,将更珍贵的资源用在更重要的业务上,从而实现资源的充分利用,资源的合理利用。性能优化的对象包括业务运行的容器、业务依赖的中间件、业务依赖的数据库存储的优化,性能优化包括两部分:一、发现需要性能优化的点;二、改造代码设计实现性能优化;

    • CPU的开销,有限的cpu无法支撑更大的业务 (性能问题)

    • CPU利用不充分,有限的CPU,无法更好的支撑业务(RT问题)

一、发现需要性能优化的点

对于业务容器来说,需要性能优化的点,往往是对系统开销最大的业务方法,这部分代码功能上并没有任何问题,但在性能上并不是最优,在资源比较充足的情况下,这部分逻辑并不会导致性能问题,但当系统压力比较大,或者业务流量比较高的情况下,这部分就会成为压力最大的点。

1) 放大系统的流量

将流量在部分容器上做放大,利用工具采集系统中的堆栈及性能数据。放大系统流量的情况下,需要提前关闭应用及容器的限流,可以利用Sentinel脚本调整。

### 取消限流 2.Xcurl http://localhost:8719/switchSet?value=false
### 取消限流 3.Xcurl http://localhost:8718/setSwitch?value=false

一、Duct引流验证 

Duct引流, duct调整某一台机器的CS权重,将其他容器的流量引流到对应的ip上,从而实现压力的放大。

图片

二、Amazon构造压测数据验证

Amazon压测,根据特定的业务场景,构造压测压测数据,压测模型,在gray4环境中打一部分压测流量,利用压测流量将系统的负载打高。Amazon更适用于大促场景下的性能优化,能确定某些接口的比例,及场景的比例。

图片

2) 利用工具采集系统热点

系统负载流量增加后,各个环节的系统性能消耗都会被放大,此时利用工具可以分析系统的性能情况。系统分析工具会带来系统压力增加,非必要情况下,尽量在隔离环境统计数据。

Arthas性能数据采集

Arthas提供了非常多的工具脚本,其中一部分数据组合起来使用,可以很方便的辅助做性能分析及线上问题排查,这里对其中常用的指令及使用场景做汇总。

安装方式:curl -sLk http://ops.jm.taobao.org:9999/pandora-web/arthas/install.sh | sh

图片

图 1.1 Arthas指令集合列表

性能分析及问题分析工具说明

指令

说明

性能分析及问题排查的场景

classloader

查看当前JVM下ClassLoader的列表及加载的实例统计信息

  • 常见于排查Metaspace空间利用率问题,常见的场景是由于Groovy脚本导致的Metaspace增加,进而导致应用FGC的问题排查

jad

反编译

  • 常见于黑盒分析,无法快速活的源码的情况下分析程序内部逻辑的场景

getstatic

获取静态字段的值

  • 常见于分析开关、配置、部分数据的情况,在分析性能数据时可以辅助排查

stack 

从当前方法点打印堆栈

  • 常见于分析热点方法调用来源,结合条件过滤,可以快速定位到异常数据产生的来源以及调用频率

trace

从当前方法下钻

  • 常见于分析耗时情况,分析某一个方法耗时的原因。比如分析鹰眼某一个接口耗时很高的原因

watch

查看方法调用的参数及返回值

  • 分析线上方法的入参及返回值,结合条件判断,可以快速知道某一个函数可能走到的场景

options

Arthas的一些选项

  • 在需要分析jdk内部的调用时,可以打开某些选项

logger

打印日志相关的信息

  • 分析日志冲突,临时关闭某些日志场景等

profiler

内部使用了Async Profiler工具,可以用来采集内存、cpu、锁、cache miss等火焰图数据

  • 性能分析,分析当前业务的热点方法

  • 启动分析,分析应用启动速度慢的原因

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值