使用ANTS Performance Profiler&ANTS Memory Profiler工具分析IIS进程内存和CPU占用过高问题

 

一、前言

最近一段时间,网站经常出现两个问题:

1.内存占用率一点点增高,直到将服务器内存占满。

2.访问某个页面时,页面响应过慢,CPU居高不下。

初步判断内存一点点增多可能是因为有未释放的资源一直在占用内存,而cpu居高不下可能是因为执行了耗时的操作。

下面我们就使用ANTS Performance Profiler和ANTS Memory Profiler这两个工具来分析具体原因。

--------------------------------------------------------

工具下载地址:ANTS Performance Profiler 8 安装包+激活工具+教程

官方文档:https://documentation.red-gate.com/dashboard.action

需要注意的是:安装完成后会有两个工具,如下图:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

二、CPU分析

我们打开内存分析工具,如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

点击New profiling session 按钮:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

点击Start profiling 按钮结果如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

从上图授权的方法是最耗时也是请求最频繁的方法,针对这种现象我们可以把用户的权限放在session中从而减少连接数据库的次数,进而提高性能

通过分析我们可以找出最耗时的方法,最耗时的请求URL,最耗时的sql语句,通过这些分析我们可以轻松找出程序的性能短板,从而有针对性的进行优化

三、内存分析

启动内存分析工具:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

点击Start profiling 按钮结果如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

点击Class list,我们可以看出哪些类型的数据占用的内存最高:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

点击上图画圈的地方如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

双击上图中的绿条,结果如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

将图放大到绿色的地方结果如下:

ANTS Performance Profiler和ANTS Memory Profiler-LMLPHP

通过上述方法,我们可以找出需要改进的地方,针对性的进行优化

05-10 23:25