对于IIS管理员来说,经常会碰到Web服务器CPU占用100%的情况,以下是个人的日常工作总结和一些解决办法,主要用来剖析w3wp.exe(IIS )占用CPU 100%的一些原因 和解决方案,希望能对你有所帮助

w3wp.exe的解释:全名,IIS Application Pool Process。 w3wp.exe是IIS工具的一部。w3wp.exe是在IIS(因特网信息服务器)与应用程序池相关联的一个进程,如果你有多个应用程序池,就会有对应的多个w3wp.exe的进程实例运行。这个进程用来分配大量的系统资源。

引起 w3wp.exe(IIS ) Cpu占用100%的常见原因如下:

1. Web 访问量大,从而服务器压力大而引起的

这个也是最常见的情况。如果 Web访问量大,特别是同时在线人数过多,处理的Requests Current(当前请求数)过高,就会同时对IIS和服务器造成较大的压力。特别是 服务器需要不断的运算,往客户端发送生成后的页面,这些都需要占用大量的CPU资源,从而造成Cpu 100%

2. 动态页面(.aspx)的程序逻辑复杂程度

这个问题,对 w3wp.exe的CPU占用 来说也是蛮严重的,可能在访问量级比较小的情况下并没有多少影响,但是在高并发的网站上面来说,特别是Asp.Net的Requests Current超过250的时候,将会是w3wp.exe占用CPU的一个重要的因素。

我曾经碰到过这样一个情况,两个 web(A和B)在两台 配置相当的 服务器中部署,且两个站点的访问量都很大,访问页面都集中在两个站点的两个单独页面,且这两个页面 的IIS连接数都是50个左右,但是页面程序的复杂程度就错了很多,A站点中的页面,只有几个 简单的Repeater绑定, 而B站点中的页面,则有大量的绑定、字符串过滤替换、Repeater嵌套绑定等等。这样的情况,在 大流量、高并发的环境中,A站点 在IIS连接数 达到3 W多的时候,CPU占用仍然是50 %左右,而B站点在IIS连接数 达到7K左右的时候,CPU就90%多了,造成了 服务器的压力很大,并且IIS遭到了堵塞。

3. 页面程序中有死循环

如果Web访问量不大,但是CPU却占用很高,那么页面中的程序肯定有死循环或者性能比较严重的 程序语句

4. Http方式下载的站点

如果站点是HTTP形式下载站,也遇到过w3wp.exe占用CPU 100%的情况

5. 服务器资源不会自动释放

有时,一个站点的流量在一个小时内陡增,结果操作系统分配了比较多的 CPU资源,但是当流量下去后,w3wp.exe占用的CPU并没有及时释放,仍然在保持在90%以上

6. 对 IIS 日志文件操作

比如此时分析 IIS 日志文件里面的数据,把 IIS Log 日志导入到数据库中等操作,也会造成此现象

解决办法:

1. 快速定位到出问题的站点

利用iisapp -a命令,快速的定位到出问题的站点。当然如果当前服务器只跑了一个web站点,那么此步骤可以跳过

在 cmd中 输入iisapp - a,会出现下图中的信息:

当然,这个要求你没个站点,都要有独立的应用程序池与之对应,应用程序池的名称,最好就是站点的名称,如下图:

关于 IIS的应用程序池的配置,这里就不说了,不懂的可以search下

之后,再打开任务管理器,如下图:

观察进程为 w3wp.exe的,查看那个CPU占用的高,再利用其PID于iisapp中列出的结果对比,就能轻松的找出是那个站点占用的CPU过高了

2. 重启 IIS和 应用程序池

此步是紧急处理,一般都是治标不治本的步骤。如果你的站点搭建的有 负载均衡(负载均衡、NLB),那么请在 负载均衡(负载均衡、NLB)把当前服务器下了,然后重启。如果你没有 负载均衡(负载均衡、NLB),而且你的站点又是在线的,那么,就悲剧10多秒吧,短暂的不能访问吧

3. 给页面加上页面级别缓存

如果Web是Asp.Net程序,那么请一定要。但是有好多人都没有用好OutputCache,导致经常出现下载页面的问题,所以都放弃了使用,这里有

OutputCache 非常有用,好处有三:直接从内存读页面,页面响应速度更快,用户体验更好;大大的降低了服务器的压力,特别是对于高并发的网站,特别是CPU的压力;减少了DB的强求,降低DB(数据库)的压力。

4. 检查页面逻辑

如果WEB流量很低,但是还有w3wp.exe(IIS ) CPU占用100%左右的情况,那么就检查页面的代码逻辑吧,很有可能是死循环或大量的运算导致。

mysql-nt.exe w3wp.exe cpu 100%_w3wp.exe(IIS ) CPU 占用 100% 的常见原因及解决办法相关推荐

  1. mysql 两个时间相差大于24小时的数据_MySQL 主从同步延迟的原因及解决办法(仅学习)...

    原文链接:https://blog.csdn.net/hao_yunfeng/article/details/82392261 Mysql主从基本原理,主要形式以及主从同步延迟原理 (读写分离)导致主 ...

  2. Mysql学习宝典(六) -- 数据库锁表及阻塞的几大常见原因和解决办法

    问题说明 当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性.加锁是实现数据库并发控制的一个非常重要的 ...

  3. MySQL 主从同步延迟的原因及解决办法

    首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校 会员中心 收藏 动态 消息 创作中心 MySQL 主从同步延迟的原因及解决办法 hao_yunfeng 2018-09-04 23 ...

  4. mysql sleep详解_mysql sleep链接过多的原因及解决办法

    今天收到运维同事短信,说有个线上业务"可能是数据库DB堵塞了,导致mysql链接过多,让我看一下". 回家后赶紧用家里vpn登录数据库服务器,show processlist 看了 ...

  5. MySQL备库复制延迟的原因及解决办法

    背景 今天有同事问我主从复制延迟会影响高可用切换的 RTO 怎么办,这个不需要做实验,我可以直接回答,所以有了以下赶鸭子的文章,都是一线运维经验之谈,建议四连:点赞.收藏.转发.在看. 复制延迟的原因 ...

  6. mysql 主从同步 速度_MySQL主从同步延迟原因及解决办法

    MySQL主从同步延迟原因及解决办法 MySQL主从延迟原因以及解决方案: 谈到MySQL数据库主从同步延迟原理,得从mysql的数据库主从复制原理说起,mysql的主从复制都是单线程的操作(mysq ...

  7. iis 无法连接mysql_远程无法连接SQL2000及MySQL的原因和解决办法

    远程无法连接SQL2000及MySQL的原因和解决办法 时间:2019-11-10 11:06 1. 没有在数据库管理面板中设置远程连接IP造成的. 说明:为了提高操作系统的安全性,所有使用了星外安全 ...

  8. mysql保存中文乱码的原因和解决办法

    当你遇到这个mysql保存中文乱码问题的时候,期待找到mysql保存中文乱码的原因和解决办法这样一篇能解决问题的文章是多么激动人心.   也许30%的程序员会选择自己百度,结果发现网友已经贴了很多类似 ...

  9. mysql保存时乱码了_MySQL保存中文乱码的原因和解决办法

    (3)MySQL的字符集设置. 这个是重点了,一般都是在这里搞错而出现了mysql乱码. mysql编码设置可以分为三种设置:数据库的编码.表的编码.和字段的编码. a.数据库的编码: 在sqlyog ...

最新文章

  1. centos7安装redis3.2.5
  2. Python 获取图片文件大小并转换为base64编码
  3. h5跳转小程序页面url_web-view h5跳转到小程序页面,无法跳转?
  4. linux——vim命令详细说明
  5. Electron中打开和关闭子窗口以及子窗口向父窗口传值
  6. 几款让你爱不释手的语音转文字软件
  7. 安卓APP_ Fragment(5)—— Fragment + ViewPager2 模拟微信首页 (2)两者联动翻页
  8. java使用token防止用户重复登录以及验证用户登录
  9. 项目已被os x使用 不能打开-黑苹果之路
  10. iPhone 12s新功能曝光:支持天体摄影+息屏显示
  11. java web 图表控件_2020 最新流行的Java Web报表工具比对
  12. matlab2c使用c++实现matlab函数系列教程-factorial函数
  13. JAVA游戏编程之一----IDE安装调试(3) --JAD 文件介绍--debug调试
  14. R语言排序三个基本函数:sort(),rank(),order()的用法
  15. 艺术科技杂志艺术科技杂志社艺术科技编辑部2022年第4期目录
  16. 射频芯片ATE测试从入门到放弃之收发机
  17. html submit没有提交数据
  18. Linux常用命令之Linux常用命令实战知识点
  19. 2022,再见,2023,我来了!
  20. vuejs知乎_GitHub - xrr2016/zhihu-daily: 知乎日报(Vuejs)

热门文章

  1. js(Dom+Bom)第二天(1)
  2. Ansible批量在远程主机执行命令
  3. (转)CentOS分区操作详解
  4. 013. MVC5过滤器
  5. 信息安全系统设计基础第三周学习总结—20135227黄晓妍
  6. C# 导出 Excel 数字列出现‘0’的解决办法
  7. 基于GCCAVR的TLC2543读写程序----模拟SPI方式实现
  8. 弄懂webpack,只要看这一片就够了(文末有福利)
  9. springboot---mybits整合
  10. vue --- Vue中的路由跳转问题