w3wp占用内存高的处理

IIS中w3wp占用内存高的处理

1)IIS的程序池默认回收间隔是1740分钟(29小时),不太合理。

  • 将进程模型-“闲置超时(分钟)”设置为0;
  • 将回收-“固定时间间隔(分钟)”设置为0;
  • 将回收-“特定时间”设置为凌晨两点(网站访问最少的时候)(注意:特定时间是支持设定多个的)。

2)设置基于内存的最大值,进行回收。

解决IIS中CPU占用过多的问题

1、在IIS中对每个网站进行单独的应用程序池配置。即互相之间不影响。
2、在任务管理器中增加显示PID字段。就可以看到占用内存或者CPU最高的进程PID
3、在命令提示符下运行iisapp -a。注意,第一次运行,会提示没有js支持,点击确定。然后再次运行就可以了。这样就可以看到PID对应的应用程序池。(iisapp实际上是存放在C:\windows\system32目录下的一个VBS脚本,全名为iisapp.vbs,如果你和我一样,也禁止了Vbs默认关联程序,那么就需要手动到该目录,先择打开方式,然后选“Microsoft ® Windows Based Script Host”来执行,就可以得到PID与应用程序池的对应关系。)
4、到IIS中察看该应用程序池对应的网站,就ok了,做出上面的内存或CPU方面的限制,或检查程序有无死循环之类的问题。

5、找出最消耗CPU的SQL语句进行优化

-- 找出前50最耗CPU的SQL语法
SELECT TOP 50
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2, 
(case when qs.statement_end_offset = -1 
then len(convert(nvarchar(max), qt.text)) * 2 
else qs.statement_end_offset end -qs.statement_start_offset)/2) 
as query_text,
qt.dbid, dbname=db_name(qt.dbid),
qt.objectid 
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY [Avg CPU Time] DESC
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值