apacheのworkerとprefork

以前にapache2系だとプロセス数が増えないと書きましたが、これは間違いでした。失礼しました。

Apacheコア部分のMPMをスレッド型のモデルworkerにした場合、各プロセスが複数のスレッドを持てるようになることからプロセス数があまり増えなくなるということでした。

workerではない、昔ながらの1リクエスト1プロセスというMPM モデルはpreforkというようです。

workerとpreforkのどちらを使う

少ないプロセス数をなんとかやりくりするためには、スレッドを使うか使わないかというworker、preforkの選択が重要でしたが、単純にプロセス制限をクリアしようと考えるならworkerを選択したいものの、肝心のPHPが完全にスレッド・セーフ仕様となっていないので、preforkを推奨してるってことが問題でした。

移転サーバの仕様

移転した新レンタルサーバで./httpd -lをしてみたら、やはりprefork.cとなっていました。

移転前サーバと変わらないMPM

結局、サーバーを移転してApacheは2.x系になったものの、MPMは変えられなかったということでした。

金額は変わらず、スペックが上がり、OSも新しくなったから良かったかもしれませんが、プロセス数制限の回避がある程度できるかと期待していたものの残念でした。

ネットには、非推奨workerでもphpが動かせたという報告もいくつか見られたので、そのうちやってみてしまおうかと思います。

プロセス制限の限界を超えると

引き続き、レンタルサーバのプロセス数制限を考えていかなければならないのですが、試しにプロセス数の限界超えたらどうなるかと気になり、試しにやってみました。

StartServers 500
MaxClients 200

当たり前かもしれませんが、即サーバがエラーを出し始めます。

(35)Resource temporarily unavailable: fork: Unable to fork new process......

操作不能となるサーバー

エラーが頻発してapacheが反応しなくなってしまっただけでなく、プロセスが上限に達して、肝心のsshすら反応しなくなってしまうという状況になってしまいました。

ヘルプデスクに対応依頼

apache自体は自動でリブートするようですが、立ち上がった瞬間にプロセスを食いつぶすのか、
ssh、sendmail、他も一切受け付けなくなってしまい、結局リモート接続ではどうにもできなくなってしまい、レンタルサーバのヘルプデスクにapacheを落としてもらうようお願いする始末に。

おわりに

今朝復活してたものの、昨日昼頃からのerror_logを見たら20万行以上のログが残されておりました。こんなにアクセス?スパムを受けているのも驚きですが、もう少々プロセス数に余裕をもたしてくれてもいいのにとは改めて思ってしまいました。

process_suu.png
上限75プロセス。節約しないとダメそうです。

PHPが学べるおすすめプログラミングスクール

この運営ブログをみて、もしdtn.jp管理人のようにサイトをゼロから作ってみたいという思いに駆られた方は、サイト開発やプログラミングをオンラインで受講できるプログラミングスクールの活用をしてみてはいかがでしょうか。サーバ/WordPress/HTML/CSS/JS/PHP/SQLなどの基本さえ分かれば、ゼロからサイト立ち上げもポンポンできるようになって、今なら仕事や転職にも役立つのでオススメです。

PHPも学べるオンラインスクール

  • CodeCampAWS Cloud9を使ったクラウド上のIDEが用意されているので、ネットにつながればスタート開始可能というゴージャスなスクールです。講師も選べて、Webマスターコースならプログラミング経験0でも一気にフロントエンドからバックエンドまでマスターできます。
  • ウェブカツJava言語やRuby言語なんぞ教えん!という、初心者にありがちな挫折ポイントがよく分かってるスクールです。フロントエンドエンジニアに必要なスキルセット&PHPがマスターできます。
  • フリークス HTML/CSSから始まり、MySQLやLinuxからPHPの変数や分岐やループ、クラスやPDOに最後はMVCまで教えてくれるので、そこまで分かればなんでもできそうです。メンターに質問もし放題がいいですね。
  • テックアカデミー法人のIT研修もやってる業界最大手・受講者数No.1のスクールです。メンターとの定期オンライン面談やチャットサポートなどもあり、大手ならではインフラ環境がウリです。PHPと合わせてjQueryもマスターできる、PHP/Laravelとフロントエンドコースがおすすめです。

オンラインスクールのデメリット

孤独になりがちなサイト制作も、優しいメンターがそばにいてくれれば凄い楽しそうですが、もちろんデメリットもあります。お金がかかるという点です。ひたすらググって、本を読んでよりは確実にコストがかかってしまいます。とはいえ、多少の余裕があるなら、こんなご時世なので時間と労力を買った方が良いと思います。