服务器近阶段遇到的问题和解决方法
近阶段,我们服务器一直处于不稳定的状态。
主要现象有:
- 网站页面无法打开。
- 静态图片无法打开
- 一般为内存溢出或者泄露
- 修改的方向为Java或者Tomcat方面
- 网站应用无法正常连接数据库,进而无法进行登录等操作。
- 网站应用无法使用MySQL数据库
- 一般为连接池资源耗尽
- 少数情况下为数据库账号密码出现偏差
- 数据库连接池频繁出现死锁问题。
- C3P0和Spring可能存在问题
- 对其进行配置来减少死锁出现的情况
我们针对上述现象,主要有如下的解决方法
-
定时重启网站。
- Windows 计算机>管理>任务计划程序概述>创建基本任务。
- Linux 使用Shell脚本或者使用Crontab程序创建定时任务。
-
增加Tomcat连接数。
- 在server.xml文件中配置。
-
增加Hibernate连接池连接数。
- 在ApplicationContext.xml文件中配置。
-
增加JVM内存以及改变GC方法。
- 在catlina.xml 文件中配置。
set JAVA_OPTS=%JAVA_OPTS% -server -Xmx4550m -Xms4550m -Xmn2g -XX:PermSize=756m -XX:MaxPermSize=756m -Xss512k -XX:ParallelGCThreads=8 -XX:-DisableExplicitGC -XX:+UseCompressedOops -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:SurvivorRatio=8
-
检查可能会导致内存泄漏问题的代码。
- 在DAO层进行数据库操作的时候,如果用到了HibernateSupport类中的getSession()方法,则最后应该使用releaseSession()方法来释放连接。经过上述操作之后,一个数据库连接才能被数据库连接池重用。
-
修改Hibernate参数来减少死锁发生的频率。
- 在ApplicationContext.xml文件中配置。