• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >JSP > 一个JSP页面导致的tomcat内存溢出的解决方法

一个JSP页面导致的tomcat内存溢出的解决方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了tomcat jsp,tomcat运行jsp,tomcat打开jsp,jsp部署到tomcat,tomcat如何运行jsp等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

今天新能测试组的同事找我看一个奇怪的现象。一个tomcat应用,里面只有一个单纯的jsp页面,而且这个jsp页面没有任何java代码(想用这个jsp页面测试在她的服务器上的一个tomcat的最大QPS)。但是用loadrunner压测了几分钟之后,分配了1024M堆内存的tomcat居然包heap space outofmemory!这个页面的代码如下:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>test</title>
</head>
<body>
<p>hello world!</p>
</body>
</html>
</div>

最初的分析是,一个JSP页面撑死了会产生一个对应的java文件,然后这个java文件编译成class文件,加载到内存里面去。也就是会有一个class对象会被加载到PermGen space里面去。跟heap space是没有任何关系的。但是最后报的是对空间溢出。于是猜测肯定是每请求一次jsp页面就会生成一个对象。

百度了一下,发现每请求一次JSP页面,会产生一个session对象。在tomcat的web.xml里面有这么个配置:

<session-config>
<session-timeout>30</session-timeout>
</session-config>
</div>

也就是说每请求一次jsp页面,会产生一个session对象,并且这个对象30分钟后才过期。我们计算了下当时的QPS是5000,也就是说每秒钟产生5000个session对象。每分钟产生300K个对象,session是个map对象,比较大,这样很快就会把内存撑爆。

解决办法如下:

1.在page指令里添加session=false。

2.把session的过期时间设成0。

现在她的loadrunner跑的很稳定。工作之后就再也没有用过jsp了,查jsp的问题还是比较费力

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 一个JSP页面导致的tomcat内存溢出的解决方法
  • jsp项目中更改tomcat的默认index.jsp访问路径的方法
  • Tomcat+Jsp环境下的中文问题

相关文章

  • 2017-05-11J2SE中的序默认序列化
  • 2017-05-11JSP 前端数据本地排序实例代码
  • 2017-05-11jsp+mysql数据库操作常用方法实例总结
  • 2017-05-11JSP实现快速上传文件的方法
  • 2017-05-11基于JSP的RSS阅读器的设计与实现方法(推荐)
  • 2017-05-11Java中基本数据类型与流
  • 2017-05-11EJB 3.0开发指南之多表映射
  • 2017-05-11纯jsp打造无限层次的树代码
  • 2017-05-11(jsp/html)网页上嵌入播放器(常用播放器代码整理)
  • 2017-05-11jsp自定义标签技术(实现原理与代码以及平台搭建步骤)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • servlet实现文件下载的实用类分享
    • 下载完成后页面不自动关闭的方法
    • jsp用过滤器解决中文乱码问题的方法
    • JSP程序运行原理、文档结构及简单输入输出实例分析
    • 网站图片路径的问题:绝对路径/虚拟路径
    • Spring Annotaion Support详细介绍及简单实例
    • JSP开发入门(二)----JSP语法的基本原理
    • JSP中EL表达式的用法详解(必看篇)
    • jsp引用servlet生成的验证码代码演示
    • JSP技术实现动态页面到静态页面的方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有