首页 / JAVA / java – 垃圾收集行为怪异
java – 垃圾收集行为怪异
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 垃圾收集行为怪异,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1438字,纯文字阅读大概需要3分钟。
内容图文
![java – 垃圾收集行为怪异](/upload/InfoBanner/zyjiaocheng/789/a4fb4fe1c9114eaba4609ab6fc96456c.jpg)
我刚刚接触了一个项目,他们让我调查为什么服务器(应用程序)表现得很奇怪.重新启动后,它们非常快(响应时间小于150毫秒),但是当它们运行大约2天时,它们变得很慢.
内存和CPU上升,在重新启动应用程序之前不会丢失.
因此,他们正在运行Tomcat(hybris)服务器,该服务器具有以下命令行标志:
-XX:ConcGCThreads = 1 -XX:G1HeapRegionSize = 4194304 -XX:GCLogFileSize = 786432 -XX:InitialHeapSize = 12884901888 -XX:ManagementServer -XX:MaxGCPauseMillis = 200 -XX:MaxHeapSize = 12884901888 -XX:NewRatio = 4 -XX:NumberOfGCLogFiles = 10 -XX:-OmitStackTraceInFastThrow -XX:ParallelGCThreads = 4 -XX:ParallelRefProcEnabled -XX:PrintGC -XX:PrintGCDateStamps -XX:PrintGCTimeStamps -XX:PrintTenuringDistribution -XX:ReservedCodeCacheSize = 134217728 -XX:ThreadStackSize = 1024 -XX:UseCodeCacheFlushing – XX:UseCompressedClassPointers -XX:UseCompressedOops -XX:UseG1GC -XX:UseGCLogFileRotation -XX:UseTLAB
在下图中,您可以看到重启前后的CPU和内存使用情况.应用服务器已经负载了几个小时……
应用程序服务器本身是一个4核,16GB RAM.
两次重启之间的完整运行截图:
解决方法:
您的应用程序有内存泄漏.
这不是垃圾收集器(GC)问题,而是应用程序中的错误.这意味着创建了一些对象,但未使用GC进行清理,因为它们的引用链接仍然存在于您的应用程序中.您应该调查哪些对象未清理,并跟踪它们的创建方式以及引用的位置.
正如您提到的TomCat,我首先会检查Servlet(或者如果您使用Spring的控制器和服务)来检查类属性变量.
内容总结
以上是互联网集市为您收集整理的java – 垃圾收集行为怪异全部内容,希望文章能够帮你解决java – 垃圾收集行为怪异所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。