zoukankan      html  css  js  c++  java
  • 实际遭遇GC回收造成的Web服务器CPU跑高团队

    今天下午有段时间访问园子感觉不如以前那么快的流畅,上Web服务器一看,果然,负载均衡中的1台云服务器CPU跑高。

    博客园Web服务器CPU跑高

    上图中红色曲线表示的是CPU占用率。正常情况下,CPU占用率一般在40%以下。

    这台云服务器是2台主力Web服务器(承担了80%以上的访问量)中的1台,8核CPU/8G内存,用的是阿里云的临时磁盘云服务器,之前一直表现出色,今天怎么突然CPU跑高呢?难道临时磁盘云服务器的CPU也有问题?向阿里云提交工单,得到的反馈是云服务器所在的物理机表现良好。

    为了尽快解决问题,我们在负载均衡中新加了1台云服务器,将这台云服务器撤下,然后奇怪现象出现了:

    在没有任何访问请求的情况下,CPU占用竟然一直在50%左右。

    打开Windows任务管理器一看,50%的CPU一直被IIS进程占用着,并且IIS进程占用了5G以上的内存。

    我们判断可能是GC回收引发的CPU消耗,理由很简单——在没有任何请求的情况下,依然在拚命工作的唯有GC(Garbage Collection)。于是我们立即回收IIS应用程序池(GC在回收,我们回收GC),进行了2次回收操作,才回收掉。回收之后,CPU占用立马下降。

    然后把这台云服务器重新投入战斗,立即恢复为之前正常的战斗状态。

    Web服务器恢复了战斗状态,而我们则要更加努力的战斗——优化代码,减轻GC的压力。

  • 相关阅读:
    c-指针
    iOS 多线程
    iOS 必备技术点
    网络请求
    objective-c基础教程——学习小结
    id类型
    排序算法
    iOS网络
    iOS 绘图
    Python——字符串2.0(实验)(python programming)
  • 原文地址:https://www.cnblogs.com/cmt/p/gc-high-cpu-usage.html
Copyright © 2011-2022 走看看