4

Tomcat7およびLinuxサーバーでgrails 2.2.4アプリを実行しています。JavaMelody モニタリング (プラグイン) で、ログインしているユーザーが約 10 人しかいないのに、1000 を超える http セッションが開かれていることがわかります。 (ユーザー セッションには -1b があります)。

それに何か問題があるかどうか興味があります.200人を超えるユーザーと約200のセッションを持つ同じサーバー上で実行されている、サイズが非常に似ている他のアプリがあります.原因を見つけます。

どんな助けでも大歓迎です。

4

1 に答える 1

1

うーん、フラッシュスコープを使いすぎていませんか?

flash スコープを使用するとすぐに、Grails は HTTP セッションを作成します。そのセッションの有効期間は web.xml で構成されている内容によって異なりますが、既定では 30 分です。

ご覧のとおり、多くの人が同時に (または 30 分以内に) Flash 対応のページにアクセスすると、アプリケーションは多数のアクティブなセッションで終了します。

1 つの「修正」は、web.xml を編集して、セッション タイムアウトをかなり低くすることです。

<session-config>
    <!-- 1 minute timeout for benchmarking -->
    <session-timeout>1</session-timeout> 
</session-config>

ただし、ユーザーに毎分ログインさせずにログインさせたい場合、これは理想的ではありません。このような場合、ログインしているユーザーを必要としないページでフラッシュを使用することはおそらく避けるべきです。

ソース: http://grails.github.io/grails-howtos/en/performanceTuning.html

于 2014-05-30T14:01:42.153 に答える