5.3. Apache HTTPD のパフォーマンスチューニング

Apache httpd は Satellite のコア部分を形成し、Satellite Web UI または公開された API を介して行われるリクエストを処理する Web サーバーとして機能します。操作の同時実行性を高めるために、httpd は、チューニングが Satellite のパフォーマンスを向上させるのに役立つ最初のポイントを形成します。

5.3.1. Apache httpd で起動できるプロセスの数を設定する

デフォルトでは、HTTPD はプリフォークリクエスト処理メカニズムを使用します。リクエストを処理するプリフォークモデルを使用して、httpd はクライアントによる着信接続を処理するための新しいプロセスを起動します。

apache へのリクエストの数が、着信接続を処理するために起動できる子プロセスの最大数を超えると、httpd によって HTTP 503 サービス使用不可エラーが発生します。処理するプロセスが不足している httpd の中で、着信接続は、Pulp などのコンポーネントが httpd プロセスの可用性に依存しているため、Satellite 側で複数のコンポーネントの障害を引き起こす可能性もあります。

HTTPD プリフォークの設定を調整して、予想されるピーク負荷に基づいて、より多くの同時要求を処理できます。

Satellite への 150 の同時コンテンツホスト登録を処理することを望む可能性があるサーバーのプリフォーク設定の変更例は、次の設定ファイルの例のようになります custom-hiera.yaml ファイルの使用方法を参照してください。これにより設定ファイル /etc/httpd/conf.modules.d/prefork.conf が変更されます):

/etc/foreman-installer/custom-hiera.yaml を変更できます:

apache::mod::prefork::serverlimit: 582
apache::mod::prefork::maxclients: 582
apache::mod::prefork::startservers: 10
  • ServerLimit パラメーターを設定して、MaxClients 値を上げます。

    詳細については、httpd ドキュメントの ServerLimit ディレクティブ を参照してください。

  • MaxClients パラメーターを設定して、httpd が着信要求を処理するために起動できる子プロセスの最大数を制限します。

    詳細については、httpd ドキュメントの MaxRequestWorkers ディレクティブ を参照してください。

5.3.2. Apache HTTPD のオープンファイル数上限の設定

チューニングを行うと、Apache httpd はサーバー上で多くのファイル記述子を簡単に開くことができます。これは、ほとんどの Linux システムのデフォルトの制限を超える可能性があります。システムの最大オープンファイル数の上限を超えた結果として発生する可能性のある問題を回避するには、次のファイルとディレクトリーを作成し、以下の例で指定されているようにファイルの内容を設定してください。

手順

  1. /etc/systemd/system/httpd.service.d/limits.conf で最大オープンファイル数の上限を設定します。

    [Service]
    LimitNOFILE=640000
  2. 変更を Satellite Server に適用します。詳細は、「設定の適用」 を参照してください。

5.3.3. Apache Httpd の子プロセスのチューニング

デフォルトでは、httpd はイベント要求処理メカニズムを使用します。httpd へのリクエストの数が、着信接続を処理するために起動できる子プロセスの最大数を超えると、httpd で HTTP 503 Service Unavailable エラーが発生します。httpd で処理するプロセスが不足すると、コンポーネントで httpd プロセスを使用できるかどうかに左右されるので、Satellite サービス側の着信接続も複数のコンポーネントで問題が発生します。

httpd イベントの設定を調整して、予想されるピーク負荷に基づいてより多くの同時リクエストを処理できます。

警告

これらの番号を custom-hiera.yaml で設定すると、ロックされます。satellite-installer --tuning=My_Tuning_Option を使用してこれらの数値を変更すると、custom-hiera.yaml によってこの設定が上書きされます。固有の要件がある場合にのみ、数値を設定してください。

手順

  1. 次の行を変更または追加して、/etc/foreman-installer/custom-hiera.yaml の同時リクエストの数を変更します。

    apache::mod::event::serverlimit: 64
    apache::mod::event::maxrequestworkers: 1024
    apache::mod::event::maxrequestsperchild: 4000

    この例は、Satellite Server で Satellite-installer --tuning=medium 以上を実行する場合と同じです。

  2. 変更を Satellite Server に適用します。詳細は、「設定の適用」 を参照してください。