国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

一個JSP頁面導(dǎo)致的tomcat內(nèi)存溢出的解決方法

2020-07-27 21:32:06
字體:
供稿:網(wǎng)友

今天新能測試組的同事找我看一個奇怪的現(xiàn)象。一個tomcat應(yīng)用,里面只有一個單純的jsp頁面,而且這個jsp頁面沒有任何java代碼(想用這個jsp頁面測試在她的服務(wù)器上的一個tomcat的最大QPS)。但是用loadrunner壓測了幾分鐘之后,分配了1024M堆內(nèi)存的tomcat居然包heap space outofmemory!這個頁面的代碼如下:

復(fù)制代碼 代碼如下:

<%@ 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>

最初的分析是,一個JSP頁面撐死了會產(chǎn)生一個對應(yīng)的java文件,然后這個java文件編譯成class文件,加載到內(nèi)存里面去。也就是會有一個class對象會被加載到PermGen space里面去。跟heap space是沒有任何關(guān)系的。但是最后報的是對空間溢出。于是猜測肯定是每請求一次jsp頁面就會生成一個對象。

百度了一下,發(fā)現(xiàn)每請求一次JSP頁面,會產(chǎn)生一個session對象。在tomcat的web.xml里面有這么個配置:

復(fù)制代碼 代碼如下:

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

也就是說每請求一次jsp頁面,會產(chǎn)生一個session對象,并且這個對象30分鐘后才過期。我們計算了下當(dāng)時的QPS是5000,也就是說每秒鐘產(chǎn)生5000個session對象。每分鐘產(chǎn)生300K個對象,session是個map對象,比較大,這樣很快就會把內(nèi)存撐爆。

解決辦法如下:

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

2.把session的過期時間設(shè)成0。

現(xiàn)在她的loadrunner跑的很穩(wěn)定。工作之后就再也沒有用過jsp了,查jsp的問題還是比較費力

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 台江县| 墨脱县| 连平县| 隆林| 大竹县| 临泉县| 琼海市| 夹江县| 雅安市| 吉首市| 久治县| 论坛| 鸡东县| 昌平区| 邢台市| 理塘县| 星子县| 宣武区| 勃利县| 南充市| 清水县| 安西县| 来凤县| 辛集市| 遂溪县| 岳普湖县| 九江县| 镇平县| 洪雅县| 镇远县| 博罗县| 鹤峰县| 肇东市| 兰溪市| 松江区| 丁青县| 东安县| 汽车| 漾濞| 朝阳市| 兴国县|