LoginSignup
0
0

ざっくりと理解するApache MPMのprefork/worker/eventの違い

Last updated at Posted at 2024-02-02

TL;DR

基本的にはevent >= worker > preforkの順で優れていると考えてオッケー。
スレッドセーフじゃないものに関してはpreforkを使った方が良いが、それ以外はeventで問題ない。

prefork

1プロセスが1リクエストを捌く方式。
メモリあたりの捌けるリクエスト数は少ないが、スレッドセーフでないプログラムを動かす場合はこの方式を使う必要がある。

worker

preforkの改良版。
1スレッドが1リクエストを捌く方式。
メモリ効率がpreforkよりも良くなっているが、同一プロセス内のスレッド間ではメモリ領域が共有されているので、スレッドセーフではないプログラムには適さない。

event

workerの改良版。RHEL8以降のデフォルト。
keepaliveが有効になっている場合に、workerよりも効率的にリクエストを捌くことができる。ただしそれができるのはhttpの時のみ。

参考文献

https://qiita.com/esparrago_b/items/4f368599aba1a059dbd1
https://l-light-note.hatenablog.com/entry/2013/12/01/184352

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0