JSP session配置对web应用的影响
以前公司做了一个web项目。发布以后,随着访问量的逐渐增大,发现JVM的内存使用比较多,full gc比较频繁,而且full gc后old区的大小变化不大。刚开始以为是JVM虚拟机的各项参数配置的不合理,我们就对JVM虚拟机的参数进行调整,调整后发现GC还是非常的频繁。
funll GC频繁非常影响性能,我们把jvm的heapdump( Java 堆栈的快照)文件导出来,采用IBM HeapAnalyzer 的分析工具进行分析。经过分析发现堆中存在很多session对象。这些session对象占用空间比较大大,而且占堆内存的比例很大。很明显问题是出现在session上面。
因为客户端访问时,当服务端中没有该客户端的session,将会生成session对象,由于项目中的session过期时间设置的比较大,所以当访问量比较大的时候,产生的session对象就非常的多,导致占用了很大的堆内存。
以前session设置为30分钟,后来设置为1分钟,代码如下:
!-- 设置session失效,单位分 -->
session-config>
session-timeout>1/session-timeout>
session-config>
把session过期时间设置为1分钟后,进行压力测试,发现full gc减少了很多,而且JVM的内存的用量也减少了很多。从这个结果得出结论设置
合理的session过期时间是非常有必要的。
注:由于这个web工程中没有任何信息放入到session中,所以可以设置session时间很短。如果session中放了信息,那么大家就需要
自己考虑设置一个合理的过期时间。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:- jsp编程中session的用法实例分析
- jsp中Action使用session方法实例分析
- JSP动态生成验证码存储在session作用范围内
- jsp获取action传来的session和session清空以及判断
- jsp和asp.net共享session值示例代码
- Jsp中解决session过期跳转到登陆页面并跳出iframe框架的方法
- JSP中 Session和作用域的使用
- jsp中session过期设置及web.xml配置学习
- jsp 对request.getSession(false)的理解(附程序员常疏忽的一个漏洞)
- JSP由浅入深(9)—— JSP Sessions