码迷,mamicode.com
首页 > Web开发 > 详细

小小的session配置,说不定会影响你的web项目性能

时间:2016-08-17 12:21:05      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

以前公司做了一个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中放了信息,那么大家就需要

自己考虑设置一个合理的过期时间。


小小的session配置,说不定会影响你的web项目性能

标签:

原文地址:http://blog.csdn.net/mr_smile2014/article/details/52229308

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!