Organizations

2 results for apache
  • こんにちは、いなむーです。 今回はapacheのMPM(マルチプロセッシングモジュール)について、再度色々勉強したものをまとめておこうと思います。 (誤りがありましたらご指摘ください!) また、今回はMPMと言いつつも、preforkモデルの取り扱いが多いので、preforkに焦点をあてて調べていきます。 参考にしたサイトはこちら。 apache公式ドキュメント MPMとは 公式ドキュメント引用 スレッドを使わず、先行して fork を行なう ウェブサーバを実装しています。 スレッドセーフでないライブラリとの互換性をとるために、 スレッドを避ける必要のあるサイトでは、このモジュールの使用が適切でしょう。 あるリクエストで発生した問題が他のリクエストに影響しないように、 個々のリクエストを単離するのにも、最適な MPM です。 親となるプロセスをpre”事前”にfork”分岐”(複製)するのがprefork式です。workerでは、プロセスをforkせずにスレッド同士でメモリなどを共有するので、効率的に処理が行える反面、問題のあるリクエストがあった場合に、共有しているスレッド同士も影響が発生します。それを避けるのに適した方式がpreforkだと書かれています。 各ディレクティブについては様々なサイトで既に書かれていますが、自分用に残しておきます。 StartServers < ul> 起動時に生成される子サーバプロセスの数 動的に制御される MaxSpareServers アイドル状態のサーバープロセス数の最大個数を設定アイドル状態なので、リクエスト処理していないプロセスです。 リクエストが増えると、MaxClientsまでプロセスをforkしていきます。 アイドル状態のプロセスが、MaxSpareServersよりも多い状態になった場合は、その値までプロセスをkillしていきます。 MinSpareServers アイドル状態のサーバープロセス数の最低個数を設定これもアイドル状態なので、リクエスト処理していないプロセスです。 アイドル状態のプロセスがこの値よりも少なくなったら、プロセスは最高で1秒につき1個の割合で新しい子プロセスを生成するようです。 ServerLimit MaxClientsに設定可能な上限値 ServerLimitはデフォルトが256。 256よりも大きい値を設定する場合は、Maxclientsディレクティブよりも上に記述する必要がある。 workerモデルの場合に、ThreadsLimitと組み合わせてMaxClientsに設定可能な値を設定する。preforkの場合はServerLimitとMaxClientsの値をべつべつに設定する意味がないので、同じ値を設定しておくと良いように思います。### MaxRequestPerChild 個々の子プロセスが稼働中に扱うリクエスト数の上限 子プロセスがMaxRequestPerChildの値だけリクエストを受け付けると、プロセスからは終了する。各プロセスの遷移はこちらのメルカリのエンジニアさんが6年前に書かれた内容が大変分かりやすいです。 http://blog.nomadscafe.jp/2010/09/apachestartservers-minmaxspareservers-maxclients.html こちらに書かれている通り、forkはリソースを大変消費するため、StartServers,MaxSpareServers,MinSpareServersは値を同じにしておくと良さそうであるということには、納得と理解ができました。 しかしながら、MaxClientsについては、気になる記述があります。 正確にはMaxClientsではなく、ServerLimitで、 公式ドキュメント引用 このディレクティブを使用する際は特に注意してください。 ServerLimit が必要以上に大きな値に 設定された場合は、余計な未使用共有メモリが割り当てられます。
    apache Created Fri, 10 Jun 2016 14:59:40 +0000
  • お客様がWindows Server 2012 Standardを利用して、アプリケーションを動かしたいという要望がありまして、Apacheを使って動かしたいとのことでしたが、Windows Server 2012でApacheを動かしたことがなかったので検証してみました。 しかしながら、普段、素のWindows Serverに慣れていないせいもあって、結構制限を解除するのが面倒だったので、念のため残しておきます。 環境 作業環境 Mac OS 10.10 OSインストール先 VirtualBox OS Windows Server 2012 Standard(評価版) ミドルウェア Apache 2.2 OSのインストール まず検証環境の構築からだったのでisoのダウンロードからなのですが、これがやたら時間がかかります。 3.5GBなので時間がかかって仕方ないとは言え、何度かタイムアウトしてしまったので、根気が必要です。 インストールが終わったら、VirtualBoxの「新規」をクリック。 適当に名前をつけて、Windows 2012(64bit)を選択。 メモリの割当は環境にあわせてですが、私はとりあえず4GBで。 一時的にではなく、しばらく検証したいのでディスクは作っておきます。 DVDブートとかなら要らないとですね。 ここは後でなにか移行とか本番で使いたいとかなければ、そのままVDI。 ディスクのサイズは可変の方がいいと思います。変に容量食うような作業しなければ、勝手に拡張してくれます。 ディスクのサイズは少なくて良いので20GBくらいで。 割りとさくっとすぐにできますので、「起動」をクリック。 インストール画面ですが、全部日本語を選択。 パッケージは最小ではなくて、GUI版にしておきます。 規約を「同意」して「次へ」 この選択はアップグレードでは無い方を選択。※写真は間違ってますね。 ドライブが表示されて「次へ」。 インストーラーが走ります。 5分くらいでパスワードの設定画面へ。簡単なパスワードは弾かれますので注意。  以上で、インストールは完了です。 今回はここまで。 続きは後編で。
    apache windowsserver2012 Created Sun, 06 Dec 2015 13:30:45 +0000