Tomcat 6は高さと下でセッションを閉じることに注意してください


最近、たまに発見されたのは、Tomcat 6が高すぎてメモリが漏れていることです.このように見ると、Tomcat 6は確かに企業のウェブサイトには向いていない.
この結論を得たシーンは、テストツールでjspページにアクセスし続けるシーンです.jspは簡単で、内容は以下の通りです.
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<!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=GBK">
<title>TestJSP</title>
</head>
<body>
Test
</body>
</html>

テストは100同時ユーザー(絶対同時)で、10分走るとTomcatでOverになります.Tomcatで使用する仮想マシンのメモリを512 Mに増やし、テストも30分もかかりません.
プレッシャーがそれほど大きくない場合(100オンラインユーザー、3秒おきにjspページにアクセス)、問題は発生しません.
テスト時に使用したjdkバージョンはsunの1.5.0_12.Tomcat6.0.14、6.0.13でこの問題が発生しました.バージョンが低い5.0では、この問題はありません.5.5バージョンも同僚によると同じ問題があるという.
--------------------------------------------------------
華麗な分割線
--------------------------------------------------------
今日outofmemeoryの原因を発見しました.
tomcatのバグではなく、sessionに問題があります.jspページにアクセスし続けると、このjspページには大量のセッションがメモリに格納され、outofmemoryが発生します.
jspページに<%@page session=「false」%>を付けるとよいか、テスト時にユーザーアクセスをシミュレートするときにブラウザプロセスとしてシミュレートするとtomcatはセッションの作成を繰り返すことはありません.
もちろんセッションが無効になる時間を制限することもできます.
ああ、問題は分かったと思ったら簡単だったが、その時は思いもよらなかった.