一次Tomcat6.0.33版本号与6.0.44版本号差异所引发的问题
前序(公司应用为Web应用, 部署serverLinux + Nginx + Tomcat )
一天收到公司报警邮件,显示个别机器方法调用严重超时,寻常都是在100ms以内响应的方法,突然某段时间响应时间上升到几秒,開始怀疑是机器的问题,暂时把机器从线上摘掉。重新启动完之后再挂到线上,通过一段时间观察发现各方法响应时间正常。
又过了几天,发现好几台机器都出现这种情况,感觉不是机器的问题,開始对jvm进行分析,通过分析发现,系统young gc耗时从開始的10ms左右慢慢上升到几百毫秒,old区使用超过了90%。并且系统没有进行过full gc,再看其它方法响应时间正常的机器,young gc一般10ms左右。可是每隔一小时运行一次full gc,full gc耗时几百毫秒,而old区差点儿每隔四小时就会清空,感觉机器响应慢的问题与young gc耗时长有非常大关系。通过上网查找资料。发现young
gc耗时与old区使用大小有非常大关系,假设old区使用太大。运行young gc就会非常耗时。导致系统响应时间变慢。
尽管找到了系统响应时间变慢的原因,可是不知道详细是什么原因导致的。由于机器都是同样的,并且也没有显示调用System.gc()的代码,后来通过对照异常机器与正常机器的各项配置,发现正常的机器Tomcat版本号号为6.0.33。异常机器Tomcat版本号号都为6.0.44。咋一看感觉Tomcat版本号都一样。没有区别,只是还是不放心。就找到这两个Tomcat版本号的源代码。查找是否有显式调用System.gc()的方法,通过查找发现,Tomcat版本号6.0.33
的内存泄露监听器JreMemoryLeakPreventionListener
。每隔一小时就会调用一次System.gc(),而Tomcat版本号6.0.44的内存泄露监听器调用一次System.gc()的时间间隔为Integer.max
-1 s,差点儿不会显式的调用System.gc()。
以上最终找到了问题所在,Tomcat版本号改为了6.0.33,之后系统恢复正常。
一次Tomcat6.0.33版本号与6.0.44版本号差异所引发的问题的更多相关文章
- OGLplus 0.33.0 发布,OpenGL 的 C 封装库
OGLplus 0.33.0 引入很多新的 OGLplus 和 OALplus 示例,更新了构建系统.CamMatrix::LookingAt 构造器.Texture::MaxLevel getter ...
- 最新版本号cocos2d­2.0­x­2.0.2使用新资源载入策略!不再沿用-hd、-
前段时间cocos2dx更新了最新版本号cocos2d2.0x2.0.2.也从这个版本号開始对于资源载入与管理都改变了策略. 在之前的载入方式都是通过沿用与cocos2d-iphone一样 ...
- Hdu1401 Solitaire 2017-01-18 17:21 33人阅读 评论(0) 收藏
Solitaire Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Sub ...
- ASP.NET 5 已死 - 隆重介绍 ASP.NET Core 1.0 和 .NET Core 1.0
还没正式登场就死了?不能怪我标题党,是大神Scott在他博客上这么说的,我只是翻译了一下. 在1月20号最新的ASP.NET Community Standup视频中,微软aspnet开发组的大帅哥 ...
- .NET Core 2.0及.NET Standard 2.0
.NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q ...
- Oracle 10.2.0.5升级至11.2.0.4
参照MOS 官方文档Complete Checklist for Manual Upgrade to Oracle Database 11gR2 (11.2) (Doc ID 837570.1)一.升 ...
- .NET Core 2.0及.NET Standard 2.0 Description
NET Core 2.0的发布时间,.NET Core 2.0预览版及.NET Standard 2.0 Preview大概在5月中旬或下旬发布. .NET Core 2.0正式版本发布时间大约在Q3 ...
- 【Oracle】RAC 10.2.0.1升级10.2.0.5
环境: OS:OEL5.6 RAC:10.2.0.1.0 相关环境变量: CRS_HOME /u01/app/oracle/product/10.2.0/db_1 ORACLE_HOME /u01 ...
- 升级_开阔视野之Oracle图形化升级(dbca建库后升级)—10.2.0.1.0升为10.2.0.5.0
***********************************************声明*************************************************** ...
随机推荐
- jQuery-mobile 学习笔记之三(事件监听)
续上 触摸事件 - 当用户触摸屏幕时触发(敲击和滑动) 滚动事件 - 当上下滚动时触发 方向事件 - 当设备垂直或水平旋转时触发 页面事件 - 当页面被显示.隐藏.创建.载入以及/或卸载时触发 一.初 ...
- 修改HTML5 input placeholder默认颜色
WebKit和Blink(Safari,Google Chrome, Opera15+)使用伪元素 ::-webkit-input-placeholder Mozilla Firefox 4-18使用 ...
- JavaScript(三)-- DOM编程
JavaScript编程中最基本的就是DOM编程,DOM是 Document Object Model文本对象模型,就是对DOM对象进行编程的过程. Java语言和Js都有针对于DOM的编程,两者类似 ...
- Mybatis <Sql>标签
重复的SQL预计永远不可避免,<sql>标签就是用来解决这个问题的 <sql id="sql1">id,name,age,gender</sql> ...
- tar 命令详解 / xz 命令
]# tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的 ...
- esriControlsMousePointer常量
控制鼠标指针选项. 不变 值 描述 esriPointerParentWindow -1 指针指定的父窗口或窗体. esriPointerDefault 0 默认指针,箭头一样. esriPointe ...
- linux 重启网卡的方法
http://blog.163.com/drzxqing@126/blog/static/59351445201052392516841/
- STM32关总中断的语句
__set_PRIMASK();//关总中断 /************ **********/ __set_PRIMASK();//开总中断
- Current thread must be set to single thread apartment (STA) mode before OLE,当前线程不在单线程单元中,因此无法实例化 ActiveX 控件“8856f961-340a-11d0-a96b-00c04fd705a2”。
Add the STAThreadAttribute attribute on the Main method. This attribute is required if your program ...
- git教程,切换分支并拉去
进了目录切换分支: git checkout 5.1 切换完成后拉去分支为: git pull https://www.liaoxuefeng.com/wiki/0013739516305929606 ...