HTTPセッション数= TCPセッション数?

HTTPセッション数= TCPセッション数?

HTTPポートでリッスン20001し、コンピュータで実行されているサーバーがあるソフトウェアがありますUnix。サーバーのログファイルにはHTTP現在600を超えるアクティブ接続があることが示されていますがHTTPnetstat -an | grep 20001サーバーが実行されているのと同じコンピュータでは2現在TCP接続のみが開いていると表示されます。サーバーは他の会社によって提供され、HTTPセッションの数が多いことについて顧客を非難しました。私は彼らが会議を正しく終了していないと思います。

私が知る限り

number of active HTTP sessions = number of open TCP connections on the listening TCP port

そうですか?そうでなければ、いつそうではなかったのですか?


編集する

以下は、ログファイルで利用可能な情報の例です。

New Session F865432C-3enOjJetUTlIoBEtfYS9yNM0l+c
New Session F865432C-HJ71n4/nCda5o3WaxqlmKNUZH48
New Session F865432C-VOWUYv/wtr7QXvxGqWPFyr/JI1o
New Session F865432C-icsmvyEcsmhM0zbzPTAepfQWc4U
New Session F865432C-K+iPSJswA85YnAJNEzSa9VIdpAQ
New Session F865432C-6L5Rp+net1JEgZeX2QSiLLW9U2g
New Session F865432C-WnVQC/9ROqO50LacYDorNgB+PVk
New Session F865432C-X81QIytjaLCtLioVvqRTJYOHqtk
New Session F865432C-qIkjOoMbmr9FVWDZuZwdBA//rxs
New Session F865432C-N05q4gAjPJll6qRqxbFK09C6fNc
New Session F865432C-JC3B3mkuCnJTDFML2tTv7FPdpw8
New Session F865432C-UOGwlKaQmOawOFnBIIPRoU91GWI
New Session F865432C-Z5dWyXkfx7SsLKmujrl/3vfPYh8
New Session F865432C-w9iKm2QkDQeqZynM7hUtk/t/5Yg
New Session F865432C-uwYNGT7HcOLvuUv9F/KPCYnx3WU
New Session F865432C-b5wcRmaXMZhSPU0h6aDdPmiUdv8
New Session F865432C-I6uVQ914c7ZT+rnD5/LxA593pHg
New Session F865432C-HhUrc/IkIbM+kYXOW3sb9SqvYuo
End Session F865432C-n2VSOhW0ewjf2RnIyu2z5TkN+I8
End Session F865432C-dtvl9+4n7U+CBtS4oYAdKv4XSgM
New Session F865432C-0WCqPy9jx/ThzjoMk60wAtzRDeI
New Session F865432C-FUpkDVUqS8Zbj7CTy0Pak8/R5AE
New Session F865432C-/Nr/q60cezrsSCXaE/aJDHiAkGM
New Session F865432C-oie/wfNvpglo6UTOPNDpobkE5bI
New Session F865432C-FUO7GmbEm7gfRDmt1YRQFUgnQmg
End Session F865432C-d5jf2n9HlEheraUDu0bKR9FXb5w
End Session F865432C-d9ev8S+du/IcBr8GRyVyeWONdy4
End Session F865432C-s/d3x+vZKQ8Tnp1tHp0hfpmE6Is
End Session F865432C-xuOj1wPjVa/SFn5Sx3qvFZHW1Uo
End Session F865432C-pdZgBzd4aurZzj6it48AkA+kkbU
End Session F865432C-BW8/9/Nxp83drQh19AV96dH1SGE
New Session F865432C-2AOjAIe6lHTChy1uk2hqhM7WNRg
New Session F865432C-KkIUP6Fa0HNjyrfhfhlNvBq6Rv4
New Session F865432C-aSRpOiGNQxmW48QwanqzCQ+/ixU
New Session F865432C-KujVjcb0npH1ODXkGdLXKu70Qmo
New Session F865432C-GXB9itx4CmV9I4sUYi2y6V4qw+U

「終了したセッション」よりも「新しいセッション」が多いという事実は疑いの余地はありません!

ベストアンサー1

~によるとこのページ、HTTP セッションはサーバーへの HTTP 要求で始まり、サーバーからの応答で終了します。 TCPセッションには複数の要求 - 応答ペアがありますが、同時には発生せずに順番に発生します。したがって、この定義によれば、次のことを行う必要があります。

number of TCP sessions >= number of HTTP sessions

>(HTTPサーバーから応答を受信すると、TCPセッションが開いている可能性があるため)。

つまり、ログファイルにはHTTPセッションは表示されません。応募セッションです。 HTTP はステートレスプロトコルであるため、HTTP サーバーは、ユーザーが戻ったときにアプリケーションが中断された部分から続行できるように、ユーザーのブラウザに Cookie を設定します。ちなみにF865432C-b5wcRmaXMZhSPU0h6aDdPmiUdv8ブラウザに設定されたクッキーの内容かもしれません。

各クッキーはオープンセッションに対応します。各 Cookie には関連データがあり、サーバーのディスクに保存されます。ディスクがいっぱいになるのを防ぐために、HTTPサーバー(より正確にはアプリケーション)は定期的にCookieボトルをクリーンアップして、動作不能セッション(特定の期間内にブラウザから受信されなかったCookie)を削除する必要があります。

したがって、アプリケーションに600を超えるアクティブセッションがあることを示すことは、ディスクに600を超えるクッキーと関連するデータがあることを意味し、600を超える同時TCP接続があるという意味ではありません。

この数が増え続けると、クッキーがガベージコレクションされないことを意味します。つまり、サーバー側に古いセッションデータを整理できるものはありません。

おすすめ記事