並列処理(マルチプロセス、マルチスレッド、イベント駆動)


Webサーバが並列処理を行う手法には「マルチプロセス、マルチスレッド、イベント駆動」の3つがあります。

🐹 マルチプロセス

リクエストを並行で処理するために、プロセスをforkして子プロセスを生成し、処理を子プロセスに任せます。

マルチプロセス
参考元:知っているようで知らないWebサーバアーキテクチャ

forkではメモリ上のアドレス空間をそのままコピーすると遅くなるため、CoW(Copy On Write)でメモリコピーの負荷を抑えます。CoWはfork時に子プロセスの仮想アドレス空間に親プロセスのアドレスをマッピングして、親子でアドレスを共有します。

都度forkするのではなく、事前にfork(prefork)して使いまわすことで限られたマシンリソースを有効活用したり、立ち上げの負荷を下げることができる。メモリの消費量は大きい。

🤔 マルチスレッド

後日記載予定。

😸 イベント駆動

後日記載予定。

🐰 参考リンク

🖥 VULTRおすすめ

VULTR」はVPSサーバのサービスです。日本にリージョンがあり、最安は512MBで2.5ドル/月($0.004/時間)で借りることができます。4GBメモリでも月20ドルです。 最近はVULTRのヘビーユーザーになので、「ここ」から会員登録してもらえるとサービス開発が捗ります!

📚 おすすめの書籍