小さなsession構成は、Webプロジェクトのパフォーマンスに影響を与えるかもしれません.


以前、会社はwebプロジェクトをしました.リリース後、アクセス数が増加するにつれて、JVMのメモリ使用量が多くなり、full gcが頻繁になり、full gc後old領域のサイズが増加することが分かった.
あまり変わりません.最初はJVM仮想マシンの各パラメータの配置が不合理だと思っていたが、JVM仮想マシンのパラメータを調整したところ、GCは非常に頻繁であることが分かった.
funll GCは頻繁に性能に非常に影響し,jvmのheapdump(Javaスタックのスナップショット)ファイルを導出し,IBM HeapAnalyzerの解析ツールを用いて解析を行った.
解析により,スタックにはセッションオブジェクトが多数存在することが分かった.これらのsessionオブジェクトは、スペースが大きく、スタックメモリに占める割合が大きい.明らかに問題はセッションに現れている.
クライアントがアクセスすると、サービス側にクライアントのセッションがない場合、セッションオブジェクトが生成されます.プロジェクトのセッションの有効期限設定が大きいため、アクセス
量が大きい場合、生成されるセッションオブジェクトは非常に多く、大きなスタックメモリを消費します.
以前sessionは30分に設定されていましたが、その後1分に設定され、コードは以下の通りです.
<!--   session  ,    -->
	<session-config>
		<session-timeout>1</session-timeout>
	session-config>

セッションの有効期限を1分に設定した後、圧力テストを行ったところ、full gcが大幅に減少し、JVMのメモリの使用量も大幅に減少したことが分かった.この結果から結論設定
合理的なセッションの有効期限は非常に必要です.
注意:このwebエンジニアリングではセッションに何の情報も入っていないので、セッション時間を短く設定できます.セッションにメッセージが入っていれば
自分で合理的な期限切れを設定することを考えます.