2016-10-10 4 views

答えて

0

アクティブセッションの数は、既存または以前のブラウザまたは一意のjSESSIONIDクッキー値を持つ他の接続の数です。誰かがブラウザであなたのWebページにヒットすると、新しいセッションが開始され、固有のJSESSIONIDがこのセッションに割り当てられます。次のヒットが同じJSESSIONID(cookieまたはurlパラメータとして送信される)で実行される場合、セッション数は同じままです。パラメータが送信されない場合、新しいセッションが作成されます。 通常、すべてのブラウザはセッションIDのCookieを複数のリクエストや複数のタブやウィンドウに保持します(もちろんシークレットタブやウィンドウは除きます)。

あなたのセッション数がユーザー数よりも多い理由は複数あります。

  • セッションはtomcatで一定期間保持され、デフォルトは2時間です。この量は風刺漫画の設定で変更できます。したがって、最初の100ユーザーがアイドル状態であっても、最初の1時間に100回のユーザーログインと100秒間のセッションが行われた場合、合計セッション数は200になります。
  • Googleロボットのようなロボットは、大量のセッションを作成する傾向があります。あなたのページが公開されている場合は、あなたのページにアクセスしているボットがいる場合は、アクセスログを確認してください。

  • アプリケーションがロードバランサまたはプロキシの背後にあり、アプリケーションの可用性を継続的に「pingしている」場合、このpingはセッションも作成できます。

  • 最後に、アプリがブラウザからリクエストを得ることができる「面白い」方法があります。たとえば、検索結果のプリフェッチなどです。
  • また、セッションはサイトのドメイン名にバインドされています。したがって、ユーザーが複数のドメイン(たとえば、コンテンツの場合はwww.domain.com、画像の場合はstatic.domain.com)を使用してサイトに接続すると、接続ごとに独自のセッションが作成されます。

ここでは、正確な問題の内容(および問題がある場合)によって、不要なセッションの作成を防ぐさまざまな方法があります。

  • セッションを必要としないアプリケーションの部分がある場合は、request.getSession()をコードのどこかにコールしないようにしてください。また、jspではセッションを明示的にオフにすることもできます<%@ page session="false" %>
  • tomcat/conf/web.xmlでセッションタイムアウトを小さくすると、より早く期限切れになります。<session-config><session-timeout>30</session-timeout></session-config> session-timeoutの値は分単位です。あなたが本当にあなたのアプリケーション内で何が起こっているのかに興味がある場合

は最後に、自分自身MoSKito

よろしく レオン

などのAPM(アプリケーションパフォーマンス管理)ツールを取得します
関連する問題