57AliYun阿里云最新优惠活动
阿里云优惠码丨阿里云代金券

阿里云服务器教程–【推荐】ECS Windows 服务器CPU占用高的处理

立即购买

阿里云服务器 ¥74元/年 现在购买还送云数据库1年 限时

个人、企业均可购买 | 更多配置0.8折特惠

腾讯云1核2GB云服务器CVM 99元/年。更有8888元开工大礼包,续费6折起。 活动地址

客户使用Windows时会遇到CPU高利用率的情况,在某些情况下这是正常的行为,例如客户购买了低规格(例如1核1G的ECS)安装了Windows 2012 服务器,有时会发现服务器的CPU突然飙高,定位下来发现是Windows Update服务在进行自动更新。但是在某些情况下,由于病毒木马,三方杀毒/网络防护软件,应用程序/驱动异常,运行高IO或者高中断处理的应用程序等情况下也会造成CPU占用率高。本文根据日常处理中遇到的高CPU问题以及微软官方文档,总结下如何处理CPU高的问题。

最佳实践


如果希望快速解决问题,请尝试如下方法:

  • 如果有安装杀毒软件,请检查CPU飙高时,杀毒软件是否在后台执行扫描操作。如果可能,请升级杀毒软件到最新版本,或者删除杀毒软件;
  • 使用MSconfig禁用所有非微软自带服务驱动,检查问题是否再次发生,具体参考微软KB How to perform a clean boot in Windows;
  • 请使用商业版杀毒软件,或者使用微软免费安全工具Microsoft Safety Scanner在安全模式下扫描杀毒,链接如下
    https://www.microsoft.com/security/scanner/zh-cn/default.aspx
  • 检查CPU飙高时,是否后台有执行Windows Update的行为;
  • 运行Windows Update来安装最新的微软安全补丁;
  • 如果该ECS内应用程序有大量的磁盘访问/网络访问行为/高计算需求,高CPU很可能是正常结果,您可以尝试增配实例规格的方式,使用更多核数/内存的规格来解决资源瓶颈问题。

注:请参考微软官方博文
How to troubleshoot high cpu in the System process

排查指南


如果需要定位为何出现CPU高的原因,可以参考微软官方博客说明,微软有多个工具可以定位CPU高的问题,例如任务管理器,资源监视器(Resource Monitor), 性能监视器(Performance Monitor), Process Explorer,Xperf (Windows server 2008以后), KernRate(Windows server 2003),抓取系统Full Memory Dump检查。

任务管理器

可以直观检查应用程序列表获取哪个应用程序占用CPU较高。点击CPU列可以按照CPU使用率排序。

【推荐】ECS Windows 服务器CPU占用高的处理

在任务管理器的”性能”页中检查CPU占用率,注意在右侧CPU使用率图示,请右键选择”将图形更改为”->”逻辑处理器”。如下图显示了4个逻辑CPU的利用率。

【推荐】ECS Windows 服务器CPU占用高的处理

技巧:如果仅仅看到某个CPU飙升到接近100%, 但是其它CPU变化不大,很可能是网络IO的处理造成。

资源监视器

直接检查CPU的使用率,还可以通过句柄和模块搜索对应的进程。

【推荐】ECS Windows 服务器CPU占用高的处理

Process Explorer

微软官方sysinternals工具,下载链接如下:
https://technet.microsoft.com/en-us/sysinternals/processexplorer.aspx
该工具非常强大,在检查高CPU问题方面,通过配置正确的Symbols,可以通过检查对应应用程序的线程调用的Call Stack,来定位可能的问题驱动。

【推荐】ECS Windows 服务器CPU占用高的处理

关于使用实例,请参考微软专家Mark Russinovich 的博文  The Case of the System Process CPU Spikes

性能监视器/Xperf

性能监视器(Performance Monitor)是微软专业收集各个组件性能计数器的工具。对于系统CPU资源消耗,有多个Counter来检查。通过开始->运行->perfmon打开该工具。
微软博文User Mode Versus Privileged Mode Processor Usage 描述了Performance的3个核心Counter
“/Processor(_Total)/% Processor Time”,“/Processor()/% User Time” , “/Processor()/% Privileged Time”
“/Processor(_Total)/% Processor Time” 是“/Processor()/% User Time” 与“/Processor()/% Privileged Time”使用之和。

/Processor()/% Privileged Time高的处理
/Processor(
)/% Privileged Time 是应用程序在内核中执行系统调用(例如驱动、IRP,上下文切换等)操作的时间。如果操作系统花费多余30%的时间在Privileged Time ,那么意味着其可能在进行高IO吞吐相关的操作。下图是Privileged Time高的示例:

【推荐】ECS Windows 服务器CPU占用高的处理

此时,请进一步检查 % DPC Time、% Interrupt Time、Context Switches/sec的情况。

如果% DPC Time、% Interrupt Time值较高,请参考文档:
    Choose Your Own Adventure: High Deferred Procedure Calls (DPCs) or High Interrupts
高DPC以及高中断,意味着某些设备出现大量的操作或者很差的性能问题,此时,建议使用微软Xperf工具进一步分析,关于XPerf的使用,请参考文档
    Windows IT Pro Magazine: Examining xPerf 
    https://www.windowsitpro.com/print/performance/examining-xperf.aspx
如果Context Switch值比较高,请参考The Case of the 2 Million Context Switches . 高上线文切换行为可能是由于有大量的线程处于Ready状态,通过减少线程的数量解决此类的问题。如下是Mark Russinovich给出的一篇解决高CPU的实例文章。
    Mark Russinovich’s The Case of the System Process CPU Spikes

/Processor()/% User Time高的处理
/Processor(
)/% User Time是处理器用于执行程序代码的时间消耗,可以用来哪个应用程序/函数调用消耗了最多的时间。下图给出了User Time高的示例:

【推荐】ECS Windows 服务器CPU占用高的处理

【推荐】ECS Windows 服务器CPU占用高的处理
具体可以参考微软文章:
How To: Identify Functions causing a High User-mode CPU Bottleneck for Server Applications in a Production Environment

阅读须知


本文仅供用户使用 ECS Windows 时参考,文中引用的微软官方链接,版权归属微软。请注意文章适用的操作系统范围,以及微软 Windows 产品迭代或者文档未及时更新可能带来的问题,阿里云官方不对引用的微软官方链接内容负责。
如果您对文档内容有疑问或认为文档内容有误,请及时通过文档下方的评价板块反馈给我们,我们将酌情改进修正。

如果问题还未解决

赞(0)
声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。邮箱:[email protected],本站原创内容未经允许不得转载,如需转载,请注明:吾趣阿里云网 » 阿里云服务器教程–【推荐】ECS Windows 服务器CPU占用高的处理
  • 阿里云
    基础型云服务器

    1核CPU

    2G内存

    40G硬盘

    1M带宽

    独立IP

    分布式存储

    适合企业官网、个人站长类网站

    ¥89/1年 原价¥903.40

  • 阿里云
    超值型云服务器

    2核CPU

    4G内存

    40G硬盘

    3M带宽

    独立IP

    分布式存储

    适合企业官网、行业门户类网站

    ¥899/3年 原价¥8281

  • 阿里云
    高性能云服务器

    2核CPU

    8G内存

    40G硬盘

    5M带宽

    独立IP

    分布式存储

    适合电商、数据库等企业级应用

    ¥1399/3年¥14765

评论 抢沙发

评论前必须登录!

 

00 Days
00 Hrs
00 Mins
00 Secs
阿里云服务器102元/年,现在购买还免费送云数据库、对象存储
立即查看