性能指标
日常性能优化最关注的就是高并发和响应快,就对应吞吐和延时
性能分析六个步骤:
- 选择指标评估应用程序和系统的性能;
- 为应用程序和系统设置性能目标;
- 进行性能基准测试;
- 性能分析定位瓶颈;
- 优化系统和应用程序;
- 性能监控和告警。
# 没有监控的排查步骤
- 我首先会去看看系统的平均负载,使用top或者htop命令查看,平均负载体现的是系统的一个整体情况,他应该是cpu、内存、磁盘性能的一个综合,一般是平均负载的值大于机器cpu的核数,这时候说明机器资源已经紧张了
- 平均负载高了以后,接下来就要看看具体是什么资源导致,我首先会在top中看cpu每个核的使用情况,如果占比很高,那瓶颈应该是cpu,接下来就要看看是什么进程导致的
- 如果cpu没有问题,那接下来我会去看内存,首先是用free去查看内存的是用情况,但不直接看他剩余了多少,还要结合看看cache和buffer,然后再看看具体是什么进程占用了过高的内存,我也是是用top去排序
- 内存没有问题的话就要去看磁盘了,磁盘我用iostat去查看,我遇到的磁盘问题比较少
- 还有就是带宽问题,一般会用iftop去查看流量情况,看看流量是否超过的机器给定的带宽
- 涉及到具体应用的话,就要根据具体应用的设定参数来查看,比如连接数是否查过设定值等
- 如果系统层各个指标查下来都没有发现异常,那么就要考虑外部系统了,比如数据库、缓存、存储等
# 平均负载
top``uptime命令会显示过去 1 分钟、5 分钟、15 分钟的平均负载(Load Average),它和 CPU 使用率并没有直接关系
平均负载:指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数
可运行状态进程:ps命令看到的R状态(Running或Runnable)的进程,指正在使用 CPU 或者正在等待 CPU 的进程
不可中断状态进程:ps 命令中看到的 D状态(Uninterruptible Sleep,也称为 Disk Sleep)的进程,则是正处于内核态关键流程中的进程,并且这些流程是不可打断的,比如最常见的是等待硬件设备的 I/O 响应
编辑 (opens new window)