AR ホームベーカリー

オイラのアウトプット用ホームベーカリー!

httpd prefork の動き

を定期的に「ひとつのブラウザからの接続で子プロセス 1 つ……いやいっぺえ起動してんな? あれ?」と忘れるので、一年に 1 回くらいお世話になっている。

teratail.com

  • 1 アクセス元に対して、サーバ側が返すのは必ず 1 コンテンツとは限らない (たとえば HTML だと、参照している CSS とか画像があるので)
    • 最近のブラウザ仕様 (おおよそ主流の Chrome 系) で 1 アクセスあたり TCP は 6 本同時に張られる
      • (DLsite とか FANZA などで) 1Gbyte 超えるファイルを 10 個くらいダウンロードキューに入れると、6 個までしかプログレスバー動かないので確認できる、エロスは偉大……
  • ので、基本 1 アクセスは 6 個の子プロセスが必要と考えておいたほうがよい

prefork をやめればいいんだろうけど、 使ってるプロプライエタリな環境が prefork にロックインしているのでやめるにやめられないという。

httpd 2.4 がリリースされてそろそろ 10 年たつし、なんとかして event あたりに移行してえなあと思うけど難しいねんな……。

MaxClient の算出

qiita.com

このあたりに書いてあるけど、基本 ps ax|grep httpd して上位 5 プロセスくらいの RES の値を利用すればおおよその場合は大丈夫。

というのを数年前も書いた気がするけど改めて書いておく。