紧急求助,JSP网站速度变慢,怎么优化
硬件架构:
应用服务器: IBM X3660服务器 + RedHat 4.0(企业版) + JDK1.4.2 + tomcat5.0.28
tomcat5.0.28同时支持两个管理系统,我们所做的这个连接池最高上限为300。
数据库服务器:IBM x3660服务器 + redhat4.0(企业版) + Oracle9i
ORACLE数据库连接数为默认值
开发软件技术: JSP + JS + Spring2.0
故障描述:
系统无缘无故的变慢,变慢的时候我们查看数据库活动会话连接数在160左右,而且在不断增长,
重启数据库系统速度变回正常,过上一会又变成这样。
这个网站的用户量比较大,问问各位老大怎么优化这个系统,好歹一个月重启一回就行,
这个系统不计成本,可以考虑加硬件等等,各位帮忙给出个软件和硬件的优化方案吧。小弟先行谢过了
[解决办法]
会不会是DAO层写的有问题啊,连接没有及时释放?
[解决办法]
建议检查数据库操作完成之后有没有释放资源。
还有,不计成本的话,把tomcat换成weblogic,jboss这些服务器吧。
[解决办法]
控制台有没有东西打出来的??有时候有些东西打出来会变慢的。。我现在也在找解决方法。
[解决办法]
没有实质性的东西、没有数据量大小,描述不充分,无法解决。
[解决办法]
无语,这种连接在多线程环境下不可能释放的。
在这个论坛不知道说了多少次了,请不要把数据库的连接对象弄成成员变量!
[解决办法]
数据库连接对象指的是 Connection, PreparedStatement, ResultSet 把他们搬回到局部变量中去,老老实实地采用最为普通办法。
[解决办法]
public List<Student> getAllStudents() { Connection con = null; PreparedStatement ps = null; ResultSet rs = null; List<Student> students = new ArrayList<Student>(); try { con = ConnectionFactory.getConnection(); String sql = "SELECT s.id, s.name, s.age FROM Student s "; ps = con.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()) { Student stu = new Student(); stu.setId(rs.getInt("id")); stu.setName(rs.getString("name")); stu.setAge(rs.getInt("age")); students.add(stu); } }catch(SQLException e) { .... }finally{ JdbcUtil.close(rs, ps, con); } return students;}
[解决办法]