zoukankan      html  css  js  c++  java
  • OutOfMemoryError:GC overhead limit exceeded

    今天上线系统后,发现java进程疯狂占用CPU资源,达到百分之六、七百,直接导致服务无法响应请求。但是查看mysql的服务,并没有出现死锁的情况,推测是Java代码里面有问题。
    过了一段时间就爆出GC overhead limit exceeded的错误,也就是说程序耗尽了所有可用的内存,GC也清理不了
    默认情况下, 如果GC花费的时间超过 98%, 并且GC回收的内存少于 2%, JVM就会抛出这个错误。

    注意, java.lang.OutOfMemoryError: GC overhead limit exceeded 错误只在连续多次 GC 都只回收了不到2%的极端情况下才会抛出。假如不抛出 GC overhead limit 错误会发生什么情况呢? 那就是GC清理的这么点内存很快会再次填满, 迫使GC再次执行. 这样就形成恶性循环, CPU使用率一直是100%, 而GC却没有任何成果. 系统用户就会看到系统卡死 - 以前只需要几毫秒的操作, 现在需要好几分钟才能完成。

  • 相关阅读:
    拦截器
    Ajax
    JSON
    数据处理及跳转
    RestFul和控制器
    第一个MVC程序
    什么是SpringMVC
    回顾MVC
    声明式事务
    微软最强 Python 自动化工具开源了!不用写一行代码!
  • 原文地址:https://www.cnblogs.com/mrnx2004/p/12163561.html
Copyright © 2011-2022 走看看