a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > JSP > 正文

一個JSP頁面導致的tomcat內存溢出的解決方法

2024-09-05 00:22:11
字體:
來源:轉載
供稿:網友
每請求一次jsp頁面就會生成一個對象,這篇文章主要介紹了一個JSP頁面導致的tomcat內存溢出的解決方法,需要的朋友可以參考下
 
 

今天新能測試組的同事找我看一個奇怪的現象。一個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>

 

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

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

 

復制代碼代碼如下:

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

 

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

解決辦法如下:

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

2.把session的過期時間設成0。

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


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产亚洲一区二区不卡 | 精品中文字幕一区 | 手机看片福利视频 | 欧美精品久久久久久久 | 久久久久久av| 国产成人看片 | 色欧美片视频在线观看 | 成人在线片 | 欧美成人在线免费视频 | 99在线视频精品 | 国产成人黄色 | 91精品国产综合久久久久久蜜月 | 欧美精品一区二区三区蜜桃视频 | 性色av一区二区三区免费看开蚌 | 国产精品一区二区三区不卡视频 | 久久久久女教师免费一区 | 日韩欧美精品 | 国产羞羞视频在线观看 | 亚洲国产一区二区三区 | 欧美日韩国产高清 | 成人一区二区在线 | 太子妃好紧皇上好爽h | 91精品久久久久久久久 | 成人av福利 | 羞羞网站在线 | 三级黄色视频毛片 | 成人射区| 超碰8 | 欧美一级艳片视频免费观看 | 偷拍电影一区二区三区 | 久久久久久亚洲 | 日本久久精品视频 | 国产精品久久 | 玖色视频 | 一道本视频 | 成人在线观| 日韩视频一区二区三区 | 国产一区二区三区免费在线观看 | 久久男人 | 国产精品美女久久久久aⅴ国产馆 | 成人免费视频一区二区 |