这是我参与「第五届青训营 」伴学笔记创作活动的第4天
一、本堂课重点内容:
pprof的原理及使用、项目性能调优实战
二、详细知识点介绍:
1.性能调优原则 1.1要依靠数据而不是猜测 1.2要定位最大瓶颈而不是细枝末节 1.3不要过早优化 1.4不要过度优化
2.性能分析工具 pprof 2.1功能简介 2.1.1分析:profile:网页、可视化终端 2.1.2展示:view--top、调用图、火焰图、peek、源码、反汇编 2.1.3工具:tool--runtime/pprof,net/pprof 2.1。4采样:sample--cpu、堆内存、协程、锁、阻塞、线程创建
3.代码项目优化——排查实践 这个项目会占用1CPU和1G内存。 3.1top——查看占用资源最多的函数。 3.2CPU什么时候flat==cum,什么时候flat==0; 3.3web命令——调用关系可视化。可以查看cpu占用最多是哪个函数。 3.4heap命令——查看堆内存 3.5查看soutce视图 3.6goruntine————协程,查看函数占用cpu时间长度、火焰图则是动态 3.7mutex锁——查看阻塞原因,查看锁的占用时间 3.8block阻塞——如何展现全部阻塞原因:去掉过滤条件 三、实践练习例子:
pprof采样过程和原理 1.CPU采样对象:函数调用及其占用时间——操作系统、进程、写缓冲 1.1采样程序通过内存分配器在堆上分配和释放的内存,记录 1.2协程和线程创建——记录程序创建的所有系统线程的信息 1.3block阻塞、mutex锁:前者记录阻塞耗时超过阈值、后者记录固定比例的锁操作
小结:掌握常用的pprof工具功能,用来解决程序的性能问题,了解pprof的采样过程和工作原理。
性能调优案例:简介业务服务优化、基础库优化、Go语言优化
**服务性能优化流程:监理服务性能评估手段、分析性能数据、定位性能瓶颈,终点优化项改造,优化效果验证**
四、课后个人总结:
这些技巧十分有用,pprof的使用对于程序性能的调优十分有指示意义。