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中放了信息,那么大家就需要
自己考虑设置一个合理的过期时间。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
IViewLocationExpander API ExpandViewLocations Razor视图路径,视图引擎会搜索...
项目背景 最近项目里有个webpack版本较老的项目,由于升级和换框架暂时不被leade...
20210323第一家量产国产化蓝牙AOA高精度定位基站生态合能培训会上海站现场直播下...
1.现在复习的感觉就是:马上要有一大波僵尸涌过来,但老子连向日葵都还没种! 2...
Epoll 是个很老的知识点,是后端工程师的经典必修课。这种知识具备的特点就是研...
详解Spring mvc ant path的使用方法 概要: 任何一个WEB都需要解决URL与请求处理...
WebService端代码 复制代码 代码如下: /// summary /// 上传文件到远程服务器 //...
这里尊托云数小编参考了几篇文章特为大家整理下,用到的朋友多支持一下了。 进行...
戳蓝字“ CSDN云计算 ”关注我们哦 作者 | 刘丹 出品 | CSDN云计算IDCSDNcloud ...
堆 Heap Heap:可以迅速找到一堆数中的 最大 或者 最小 值的数据结构。 将根节点...