声明,本文中有部分内容摘自,倪鹏飞老师在极客时间的性能优化课程,大家感兴趣的还是去听一下老师的课会更有收获,老师的课讲的非常不错。 课程链接:https://time.geekbang.org/column/intro/140
知识体系
- 知识有体系了才能更长久的存留与脑中,需要到的时候才能想起来,才能起作用。
性能优化脑图
性能优化工具汇总
性能问题排查思路
思路1
- 选择指标评估应用程序和系统的性能
- 为应用程序和系统设置性能目标
- 进行性能基准测试
- 性能分析定位瓶颈
- 优化系统和应用程序
- 性能监控和告警
思路2
1、我首先会去看看系统的平均负载,使用top或者htop命令查看,平均负载体现的是系统的一个整体情况,他应该是cpu、内存、磁盘性能的一个综合,一般是平均负载的值大于机器cpu的核数,这时候说明机器资源已经紧张了
2、平均负载高了以后,接下来就要看看具体是什么资源导致,我首先会在top中看cpu每个核的使用情况,如果占比很高,那瓶颈应该是cpu,接下来就要看看是什么进程导致的
3、如果cpu没有问题,那接下来我会去看内存,首先是用free去查看内存的是用情况,但不直接看他剩余了多少,还要结合看看cache和buffer,然后再看看具体是什么进程占用了过高的内存,我也是是用top去排序
4、内存没有问题的话就要去看磁盘了,磁盘我用iostat去查看,我遇到的磁盘问题比较少
5、还有就是带宽问题,一般会用iftop去查看流量情况,看看流量是否超过的机器给定的带宽
6、涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否查过设定值等
7、如果系统层各个指标查下来都没有发现异常,那么就要考虑外部系统了,比如数据库、缓存、存储等
学习记录
uptime平均负载
$ uptime
02:34:03 up 2 days, 20:14, 1 user, load average: 0.63, 0.83, 0.88
开机时间,1分钟/5分钟/15分钟的平均负载。
平均负载:单位时间内,系统处于 可运行状态 和 不可中断状态 的平均进程数。
压力模拟工具
stress
通过查看man手册学习