[Seasar-user:21209] アプリケーションサーバのCPU高騰
市川 尚也
[E-MAIL ADDRESS DELETED]
2011年 12月 14日 (水) 18:38:45 JST
お世話になっております。
n_ichikawa2000と申します。
タイトルの件の問題が発生しており、
何かしら情報が得られればと思い投稿致します。
こちらで質問するのは的外れかもしれませんが、宜しくお願いします。
【使用バージョン】
s2-framework-2.4.17.jar
s2-extension-2.4.17.jar
s2-dao-1.0.46.jar
teeda-core-1.0.11-SP1.jar
teeda-extention-1.0.11-SP1.jar
【問題】
本番運用中に、OracleApplicationServerにて、CPU100%となりサーバがダウンしてしまう問題が発生。
スレッドダンプを確認したところ、
EvermindHttpServletRequest.setAttribute、
EvermindHttpServletRequest.getAttribute
が繰り返しコールされているスレッドが多数ありました。
※スレッドダンプ自体はネットワークを繋げられる環境ではない為、一文のみ記載しておきます。
"AJPRequestHandler-RMICallHandler-620" prio=10 tid=0x5552 runnable[0x80c95000]
java.lang.Thread.State:RUNNABLE
at java.util.HashMap.get(HashMap.java:303)
at com.evermind.server.http.EvermindHttpServletRequest.getAttribute(EvermindHttpServletRequst.java:3226)
at javax.servlet.ServletRequestWrapper.getAttribute(ServletRequestWrapper.java:127)
at org.seaser.framework.container.external.servlet.ServletRequestMap.getAttribute(ServletRequestMap.java:46)
at org.seaser.framework.container.external.AbstractExternalContextMap.put(AbstractExternalContextMap.java:97)
【検証状況】
サポートからは、HashMapの使い方がスレッドセーフであるか確認して欲しいとの回答がありました。
当方で使用しているHashMapを洗い出しましたが、Collections.synchronizedMapで宣言しており、
スレッドセーフであると言えると思われます。
そのほかの発生原因には何が考えられますでしょうか。
またそのほか、足りない情報があれば指摘して頂きたいです。
宜しくお願いします。
Seasar-user メーリングリストの案内