2007年7月2日月曜日

ApacheでWebサーバを構築#2

個人的には新しいもの好きなので、Apache2の安定版が出るや否や、Apache2.xに飛びついたと記憶しています。

1.xと2.xの大きな違いは、2.xではスレッドでApacheが稼動されると言う事です。

2.xでももちろんなのですが、1.xではWebアプリケーションには比較的多くのユーザーがアクセスしてくるだろうとの見解から、最初から5つとか10とかのApacheプロセスを起動させておきます。

すると、複数ユーザーから同時にアクセスを受けても、後のユーザーへのプロセスをアクセスがあってから立ち上げると言うタイムラグが減るわけです。

最初に立ち上げているプロセス数を超えたアクセスがあっても大丈夫なように、アクセスがあると随時空きというかアイドルのプロセスが立ち上がります。

メモリーリソース的に考えると、無駄な事をしているようにも思えますが、ユーザーの立場になってみると、Webサーバにアクセスしたら、すぐにでもレスポンスが欲しいわけです。

ただ、一つ問題は、いつも複数のApacheプロセスが立ち上がっているため、psコマンドなどでプロセスの稼働状況を調べても、果たしてユーザーがアクセスしているからプロセスが動いているのか、アイドル状態のプロセスなのか、以前ユーザーがアクセスし、その後セッションが切れたプロセスなのか、判断しかねると言う事です。

会社のWebサーバの運用を行っていたときは、Apacheのみならずそこで動いている他のアプリケーションのメインテナンスを行い、必要があればリブートしていました。

なので、誰かがWebサーバにアクセスしているのかそうでないのか、判断しかねるのはリブートのタイミングを計る上で、ちょっと難しかったのです。

0 件のコメント: