方法论
相关概念
两个系统性能指标
Throughput:吞吐量,每秒可以处理的请求数、任务数;一般对应着qps
Latency:延迟,每个请求或者任务执行的时间
两个概念
IO密集型:磁盘读取,web服务等任务,主要需要IO的读取,利用CPU的效率较低,大量时间花费在IO上
计算密集型:主要消耗大量CPU资源,不停进行计算。由于依靠CPU性能,一直占用CPU进行计算
对于IO密集型,可以多创建线程,可以多运行,但是每次运行时间片不要太长。
对于计算密集型,减少线程使用,每次运行时间片尽量长。
基本原则
两大原则
-
提高CPU利用率:减少进程阻塞、等待的时间,单位时间内执行更多的指令
-
空间换时间
优化步骤
-
埋点:在需要优化的地方,进行埋点,指导哪个地方耗时最长
-
思考能应用上的策略:不是所有耗时长的都可以优化;分析代码的逻辑,思考能否提高CPU利用率或者通过空间换时间
-
进行性能优化
-
预计优化后可以达到的性能效果:预计效果与实际效果不一致,思考那些地方疏忽了
-
观察优化后的效果
-
思考总结
三个重要效果:
-
需要达到的效果
-
预期达到的效果
-
实际达到的效果
性能优化策略
提高CPU使用率
-
多线程同步
-
nio与异步
-
批处理方法
-
MQ消息
-
JMV调优
空间换时间
-
本地缓存
-
分布式缓存
-
数据库索引
-
数据预处理
-
离线数据处理
逻辑优化
-
代码优化
-
sql优化
-
服务拆分
浙公网安备 33010602011771号