スレッドWebサーバーとは何ですか?


2

スレッドWebサーバーとは何ですか?

多くの検索を実行しましたが、明確な説明や定義を提供するものを見つけることができません。おそらく誰かが私を啓発することができます。

回答:


9

スレッド化されたWebサーバーは、新しいプロセスで各リクエストを処理するのではなく、新しいスレッドで各リクエストを処理するサーバーです。

マルチスレッドはプロセスとの同時実行よりも複雑であるため、モジュールの1つが正しく動作しない場合、Webサーバーがクラッシュするリスクが高くなります。また、クラッシュした場合、すべてのスレッド(つまり、その時点で処理されているすべてのリクエスト)がクラッシュする可能性が高くなります。ただし、マルチスレッドサーバーのメモリ消費量は少なく、一般に高速です。

これは、2つの(相互に排他的な)Apacheモジュール、preforkとworkerを比較するベンチマークです。

http://www.camelrichard.org/apache-prefork-vs-worker

とその定義...

http://httpd.apache.org/docs/2.0/mod/prefork.html

http://httpd.apache.org/docs/2.0/mod/worker.html


注:「個々のプロセスで各リクエストを処理するのではなく」-サーバーを実装する他のオプションもあります。単一プロセス内の単一スレッドがイベントベースのソケット操作を使用するイベントベースのように

同意しました... node.js(stackoverflow.com/questions/5681853/…
Homer6

マルチスレッドサーバーの定義は、必ずしも1リクエスト1スレッドだとは思いません。私はそれが本当にうまくスケーリングするとは思わない。
ジャスティンマイナーズ

あなたが正しい。そうではありません。ただし、そのモデルはしばらく前から存在しています。定義がリクエストごとに必ず1つのスレッドであるかどうかもわかりません。有限のスレッドプールを持つことは、スレッドWebサーバーと見なされます。スレッドプールを代わりに使用するサーバーよりも簡単に構築できるため、接続ごとに1つのスレッドは教育モデルに近いと思います。
ホーマー6

4

これは、着信HTTPリクエスト用のキューとそれらを満たすためのスレッドプールを持つWebサーバーです。サーバーは最初の要求をキューから取り出し、プールからスレッドを割り当てて作業を行います。要求は、スレッドが処理できるよりも速く着信した場合、またはプールがスレッドを使い果たした場合にキューに並んでいます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.