スーパーサーバ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
スーパーサーバーの原理

スーパーサーバ(super server)とは、他のサーバープログラムを管理/制御し、必要に応じてそれらのサーバープログラムを起動するプログラムである。文字通りスーパーな(上位の、超越的な)存在であるため "サーバーのサーバー" という意味でスーパーサーバーと呼ばれる。

サーバープログラムは、スーパーサーバーによって起動するのではなく、個々のサービスを直接起動し、デーモンとして常駐させておくこともできます。このガイドでは、このような起動方法をスタンドアローンモードでの起動と呼んでいます。

Webサーバーの Apache やメールサーバーの Postfix などは、スタンドアローンモードで起動します。一方、スーパーサーバーによって起動する方法をスーパーサーバーモードでの起動と呼びます。 Turbolinux 11 Server では ipop3、imap などのサービスが xinetd から起動するように設定されています。

スーパーサーバーのメリット[編集]

スーパーサーバーモードでサーバープログラムを起動する理由は、スーパーサーバーの機能や役割を知ることで理解できます。

システムの負荷軽減[編集]

個々のサーバープログラムをスタンドアロンモードで起動すると、サーバープログラムはそれぞれがメモリに常駐するため、多くのメモリを必要とします。しかし、それらのサーバプログラムは常に利用されているわけではありません。スーパーサーバーモードで起動すると、スーパーサーバーがサーバープログラムの代理としてメモリに常駐し、ポートの監視を行います。そしてリクエストがあったときに、そのポートに対応するサーバープログラムを起動するため、メモリ使用量とシステムの負荷を軽減することができます。

システム管理の負荷軽減[編集]

個々のサーバープログラムをスタンドアローンモードで起動する場合、各サーバープログラムを個々に管理しなければなりません。システム管理者は、今後もさらに増えていくであろう多種多様なサーバープログラムに対応していく必要がありますが、そのすべてを個々に管理することはもはや非現実的であり、一元管理/制御できるスーパーサーバーの役割は必須の機能となります。

システムの冗長性/堅牢性の向上[編集]

スーパーサーバーモードでサーバープログラムを起動すれば、あるサーバープログラムのサービスが何らかの理由で正常に機能しなくなっても、次の要求によって再起動され、システムの冗長性/堅牢性を向上させることができます。

スーパーサーバーのデメリット[編集]

デメリットとしては、リクエストを受け付けるたびにサーバープログラムの起動/終了が行われるため、次のような場合は逆に負荷が高くなりパフォーマンスが低下します。

  • 頻繁に接続要求を受け付けるサービスの場合
  • プログラム起動時の初期化作業に時間がかかる場合

このような負荷のかかるサービスの場合は、スタンドアローンモードで起動する方が効率が良いと言えます。その代表的な例としては、Web サーバーのように頻繁に接続要求を受け付けるサービスです。メールサーバーも同様の理由でスタンドアローンモードでの起動が推奨されるサービスとして位置付けられます。

実装[編集]