您的位置:首页 > 其它

系统宕机分析与解决方案

2016-06-28 18:03 239 查看
系统上完线后不久,就宕机了,很是郁闷,对系统宕机这块没有相关解决方案,就将此问题修复的方案记录,一边自己以后查阅,也希望可以帮助遇到此问题的友友。

服务器内存过小(以windows64为例)

一般首先考虑是tomcat内存过小,查看错误日志文件,是否是内存过小问题,内存过小,增加tomcat的内存,

如果部署项目是通过点击tomcat/bin目录下的start.bat,我们需要这样修改:

1, 打开tomcat的bin目录.

2, 找到catalina.bat文件.

3, 找到set JAVA_OPTS=%JAVA_OPTS% %LOGGING_CONFIG%
代码,在此行代码上一行加入内存配置信息,如:

JAVA_OPTS=”-Xms512m -Xmx1024m” –内存最大为1024,最小为512

JAVA_OPTS="$JAVA_OPTS -server -XX:PermSize=64M -XX:MaxPermSize=256m"—类空间大小范围为64m到256m之间

         如果部署项目是通过把tomcat注册成服务启动的,我们需要修改注册表,因为服务启动时是加载注册表中的配置信息。

         注册表:(64位)

找到以下项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ApacheSoftware Foundation\Procrun 2.0\Tomcat6\Parameters\Java]

设置:JvmMs—jvm初始化分配的内存,建议最大内存和最小内存设置一致减少GC

          JvmMx—jvm所能使用的最大内存

如果是32位的操作系统,内存最大只能设置1.5G到2G之间,超过这个范围,tomcat无法启动。

如果是64位的操作系统,内存最大可以设置2G到3G之间,同样超过这个范围,tomcat也无法启动。

所以最好使用64为操作系统。

如果经过以上调整,系统有所改善,但是后期业务量增大,系统又宕机的话,并且确定是内存不足,我们就需要考虑tomcat集群。

        

系统程序bug

如果内存增加了几倍,效果还是和内存没有调整之前一样,那我们就要考虑是否是程序在执行的时候导致的错误,一般我们都可以查看日志来定位具体执行哪个程序,系统宕机,但是有的程序报错不会记录日志,所以我们在开发的时候应该在关键的方法,手动记录日志,比如记录方法名称,参数信息等,方便以后我们定位错误。我们找到程序终止时最后执行的方法,对代码进行仔细分析,肯定会发现bug的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: