[mayaa-user:860] Re: NamespaceImpl#getInstanceのスレッドのロック待ち

suga [E-MAIL ADDRESS DELETED]
2009年 9月 18日 (金) 09:54:02 JST


suga です。

2009/9/17 AGATA Toshitaka <[E-MAIL ADDRESS DELETED]>:
> Mayaa  1.1.1
> org.seasar.mayaa.impl.engine.specification.NamespaceImpl.getInstance(NamespaceImpl.java:54)
>        - waiting to lock <0x980649b8> (a

ここのコードでデッドロックになるとは考えにくいですが、148個出ているというのは
maxThreads が 150 ならそれらほぼ全部で待っているということでしょうね。

今分かっている情報だけではコード上の問題と思えませんので、
VM の方を見てみました。

http://java.sun.com/j2se/1.5.0/ReleaseNotes.html
Changes in 1.5.0_14
Solaris10/T2000 となっていますが、これが近いかもしれません。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6525425

単純に lock 待ちになっているだけなら CPU は使わないでしょうから、
原因は複合的なものではないかと思いますが、ひとまずは VM を新しく
してみてはいかがでしょうか。

-- 
suga ( [E-MAIL ADDRESS DELETED] )


2009/9/17 AGATA Toshitaka <[E-MAIL ADDRESS DELETED]>:
> 縣です。
>
> 稼働中のMayaaを使用したWebアプリにて以下の現象が発生しましたので
> ご報告します。
>
> 状況としては、
>
> ・200クライアント程度が同時に利用した際に、
> サーバーからのレスポンスがすごく遅くなり、
> ほとんど使用不能な状態になった。
>
> ・tomcatがずっとほぼCPU100%つかんでいた。
>
> ・ApacheのHTTP接続は100本程度だった。
>
> ・はじめアクセスが多いのかと思い、apacheのMaxClientをしぼりましたが、
> 改善せず。tomcatを再起動したところ、解消しました。
>
> ・Tomcatは起動後数ヶ月は普通に動いていた
> 徐々に遅くなったのか、突然遅くなったのかは不明。
>
> ・このWebアプリはmayaaファイル/HTMLファイルが
> 運用中に動的に増加することがあります。
> ユーザからの任意のタイミングで、システムから生成された
> mayaaファイル/HTMLファイルがwebapps以下に出力されます。
> (削除や更新もあり)
> 障害発生時点でのmayaaファイルの総数は2801ありました。
>
> tomcat再起動直前にスレッドダンプをとりましたので添付します。
> 中身見ると下記のようなのが148個ありますので、
> Mayaaに関連したなにかしら問題(?)がありそうな気がしました。
> (TomcatのコネクタのmaxThreadsは150に設定していました)
>
> ---------------------------------------------------------------------
> "TP-Processor150" daemon prio=1 tid=0x0955b6c8 nid=0x5fa0 waiting for
> monitor entry [0x7f833000..0x7f833fa0]
>        at
> org.seasar.mayaa.impl.engine.specification.NamespaceImpl.getInstance(NamespaceImpl.java:54)
>        - waiting to lock <0x980649b8> (a
> org.seasar.mayaa.impl.util.ReferenceCache)
>        at
> org.seasar.mayaa.impl.engine.specification.NamespaceImpl.copyOf(NamespaceImpl.java:77)
>        at
> org.seasar.mayaa.impl.engine.specification.SpecificationUtil.copyNamespace(SpecificationUtil.java:311)
>        at
> org.seasar.mayaa.impl.engine.processor.ElementProcessor.resolvePrefixAll(ElementProcessor.java:203)
>        at
> org.seasar.mayaa.impl.engine.processor.ElementProcessor.renderInit(ElementProcessor.java:450)
>        at
> org.seasar.mayaa.impl.engine.processor.ElementProcessor.doStartProcess(ElementProcessor.java:438)
> ---------------------------------------------------------------------
>
> また、MLで似たような状況がありましたが、解決には至っていないようでした。
> http://ml.seasar.org/archives/mayaa-user/2009-June/000815.html
>
> ■利用バージョン
> OS     Cent OS 4
> Java   jdk1.5.0_13
>       Java HotSpot(TM) Client VM
>       (build 1.5.0_13-b05, mixed mode, sharing)
> Tomcat 5.5.25
> Mayaa  1.1.1
>
> 何か解決のヒントになることがありましたら教えていただければ助かります。
> よろしくお願いします。


mayaa-user メーリングリストの案内