一個(gè)JSP頁(yè)面導(dǎo)致的tomcat內(nèi)存溢出的解決方法_JSP教程
推薦:jsp+ajax發(fā)送GET請(qǐng)求的方法本文實(shí)例講述了ajax發(fā)送GET請(qǐng)求,然后通過(guò)jsp頁(yè)面來(lái)接收處理的實(shí)現(xiàn)方法。分享給大家供大家參考。具體實(shí)現(xiàn)方法如下: Ajax發(fā)送GET請(qǐng)求 這里用一個(gè)實(shí)例演示Ajax發(fā)送get請(qǐng)求,實(shí)例具體要求為一個(gè)注冊(cè)頁(yè)面,當(dāng)用戶填寫完用戶名稱時(shí),該輸入框失去焦點(diǎn)后會(huì)通過(guò)Ajax向后臺(tái)發(fā)
今天新能測(cè)試組的同事找我看一個(gè)奇怪的現(xiàn)象。一個(gè)tomcat應(yīng)用,里面只有一個(gè)單純的jsp頁(yè)面,而且這個(gè)jsp頁(yè)面沒有任何java代碼(想用這個(gè)jsp頁(yè)面測(cè)試在她的服務(wù)器上的一個(gè)tomcat的最大QPS)。但是用loadrunner壓測(cè)了幾分鐘之后,分配了1024M堆內(nèi)存的tomcat居然包heap space outofmemory!這個(gè)頁(yè)面的代碼如下:
代碼如下:
<%@ 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>
最初的分析是,一個(gè)JSP頁(yè)面撐死了會(huì)產(chǎn)生一個(gè)對(duì)應(yīng)的java文件,然后這個(gè)java文件編譯成class文件,加載到內(nèi)存里面去。也就是會(huì)有一個(gè)class對(duì)象會(huì)被加載到PermGen space里面去。跟heap space是沒有任何關(guān)系的。但是最后報(bào)的是對(duì)空間溢出。于是猜測(cè)肯定是每請(qǐng)求一次jsp頁(yè)面就會(huì)生成一個(gè)對(duì)象。
百度了一下,發(fā)現(xiàn)每請(qǐng)求一次JSP頁(yè)面,會(huì)產(chǎn)生一個(gè)session對(duì)象。在tomcat的web.xml里面有這么個(gè)配置:
代碼如下:
<session-config>
<session-timeout>30</session-timeout>
</session-config>
也就是說(shuō)每請(qǐng)求一次jsp頁(yè)面,會(huì)產(chǎn)生一個(gè)session對(duì)象,并且這個(gè)對(duì)象30分鐘后才過(guò)期。我們計(jì)算了下當(dāng)時(shí)的QPS是5000,也就是說(shuō)每秒鐘產(chǎn)生5000個(gè)session對(duì)象。每分鐘產(chǎn)生300K個(gè)對(duì)象,session是個(gè)map對(duì)象,比較大,這樣很快就會(huì)把內(nèi)存撐爆。
解決辦法如下:
1.在page指令里添加session=false。
2.把session的過(guò)期時(shí)間設(shè)成0。
現(xiàn)在她的loadrunner跑的很穩(wěn)定。工作之后就再也沒有用過(guò)jsp了,查jsp的問題還是比較費(fèi)力
分享:java使用smartupload組件實(shí)現(xiàn)文件上傳的方法這篇文章主要介紹了java使用smartupload組件實(shí)現(xiàn)文件上傳的方法,對(duì)比分析了使用組件與不使用組件實(shí)現(xiàn)文件上傳的區(qū)別,具有一定參考借鑒價(jià)值,需要的朋友可以參考下 本文實(shí)例講述了java使用smartupload組件實(shí)現(xiàn)文件上傳的方法。分享給大家供大家參考。具體分析如下: 文件
- jsp+ajax發(fā)送GET請(qǐng)求的方法
- java使用smartupload組件實(shí)現(xiàn)文件上傳的方法
- jsp利用application統(tǒng)計(jì)在線人數(shù)的方法
- jsp分頁(yè)顯示完整實(shí)例
- JSP 開發(fā)環(huán)境搭建
- JSP 生命周期
- jsp中URL傳遞中文參數(shù)的處理方法
- JSP 重置按鈕清空傳入的表單數(shù)據(jù)實(shí)例
- JSP中的倒數(shù)計(jì)時(shí)和自動(dòng)跳轉(zhuǎn)頁(yè)面
- JSP 獲取Spring 注入對(duì)象示例
- jsp文件怎么打開?
- JSP自定義標(biāo)簽的實(shí)現(xiàn)過(guò)程
JSP教程Rss訂閱編程教程搜索
JSP教程推薦
猜你也喜歡看這些
- Jsp數(shù)據(jù)庫(kù)連結(jié)大全
- jsp 自定義分頁(yè)標(biāo)簽
- J2ME 記錄管理存儲(chǔ)
- Struts初級(jí)教程(3)-結(jié)合數(shù)據(jù)庫(kù)應(yīng)用
- Apache Tomcat 5.5部署jsp項(xiàng)目總結(jié)之——jsp連接數(shù)據(jù)庫(kù)
- 實(shí)現(xiàn)jsp驗(yàn)證碼的簡(jiǎn)單小例子
- JSP由淺入深10—— Beans and Forms處理
- jsp的分頁(yè)查詢的代碼(mysql數(shù)據(jù)庫(kù))
- JSP保存用戶上次登錄時(shí)間詳細(xì)代碼
- Jsp安全性初探
- 相關(guān)鏈接:
復(fù)制本頁(yè)鏈接| 搜索一個(gè)JSP頁(yè)面導(dǎo)致的tomcat內(nèi)存溢出的解決方法
- 教程說(shuō)明:
JSP教程-一個(gè)JSP頁(yè)面導(dǎo)致的tomcat內(nèi)存溢出的解決方法
。