001-性能问题分析的一般步骤

2019-07-06  本文已影响0人  0981b16f19c7

性能问题主要从系统资源瓶颈和应用程序瓶颈两个角度来考虑:

系统资源瓶颈

资源分类

硬件资源:CPU、内存、磁盘、文件系统、网络

软件资源:文件描述符数、连接跟踪数、套接字缓冲区大小

衡量指标

使用率、饱和度、错误数

系统资源的分析方法

CPU性能分析

CPU性能指标及其分析工具

缩小排查范围,我通常会先运行几个支持指标较多的工具,top、vmstat和pidstat.

内存性能分析

衡量指标:内存使用情况(已用内存、剩余内存、共享内存、可用内存、缓存和缓冲区的用量等)、进程内存使用情况(比如进程的虚拟内存、常驻内存、共享内存以及 Swap 内存等)、缺页异常、SWAP使用情况(比如 Swap 的已用空间、剩余空间、换入速度和换出速度等)

内存性能指标 内存性能指标检测工具 最常用的内存分析工具

磁盘和文件IO性能分析

磁盘和文件IO分析图谱

网络性能分析

网络性能分析图谱

应用程序瓶颈

瓶颈来源

资源瓶颈、依赖服务瓶颈以及应用自身的瓶颈。

资源瓶颈分析

系统资源(软硬件资源)出现瓶颈,从而导致应用程序的运行受限。

分析方法:直接采用系统资源分析方法即可。

依赖服务的瓶颈

譬如数据库、分布式缓存、中间件等应用程序,直接或者间接调用的服务出现性能问题,从而导致用于程序的运行受限。

分析方法:使用全链路跟踪系统

应用程序自身的瓶颈

譬如多线程处理不当,死锁,业务算法的复杂度过高等。

分析方法:通过系统调用、热点函数或应用自身的的指标监控与日志监控,观察关键环节的耗时和内部执行过程中的错误。

两者的关联性

系统资源和应用程序本来就是相互影响、相辅相成的一个整体。系统是应用的运行环境,系统的瓶颈会导致应用的性能下降;而应用的不合理设计,也会引发系统资源的瓶颈。实际上,很多资源瓶颈,也是应用程序自身运行导致的。比如进程的聂村泄露,会导致系统的内存不足;进程过多的IO请求,会拖慢整个系统的IO请求等。所以很多情况下,资源瓶颈和应用自身的瓶颈,其实是同一个问题导致,并不需要我们重复分析

上一篇 下一篇

猜你喜欢

热点阅读