付録A 大規模デプロイメントに関する考慮事項
Apache 向けファイル記述子の最大数の増加
登録されているコンテンツホストの数が 800 を超える場合、Apache では複数のシステムレベルの制限に到達し、新しいコンテンツホストの登録に失敗することがあります。この問題を回避するには、大量のコンテンツホストをデプロイする前に、ファイル記述子の制限を緩和する必要があります。
/etc/systemd/system/httpd.service.d/limits.confファイルを作成し、以下のテキストを挿入します。[Service] LimitNOFILE=65536
[Service] LimitNOFILE=65536Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更をユニットに適用します。
systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite のサービスを再起動します。
foreman-maintain service restart
# foreman-maintain service restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
qpid 向けファイル記述子の最大数の増加
1100 を超えるコンテンツホストでエラータ更新のために goferd を実行すると、qpid でシステムレベルの制限に到達し、登録に失敗することがあります。この問題を回避するには、大量のコンテンツホストをデプロイする前に、ファイル記述子の制限を緩和する必要があります。
qpid 向けファイル記述子の最大数の増加
/etc/systemd/system/qpidd.service.d/limits.confファイルを作成し、以下のテキストを挿入します。[Service] LimitNOFILE=65536
[Service] LimitNOFILE=65536Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変更をユニットに適用します。
systemctl daemon-reload systemctl restart qpidd.service
# systemctl daemon-reload # systemctl restart qpidd.serviceCopy to Clipboard Copied! Toggle word wrap Toggle overflow
共有バッファーと作業メモリーの増加
shared_buffer と work_mem はそれぞれ、256M と 4M に増やすことができます。
Red Hat Enterprise Linux 7 の場合は、
/var/lib/pgsql/data/postgresql.confファイルを作成し、以下のテキストを挿入します。work_mem = 4MB shared_buffers = 256MB
work_mem = 4MB shared_buffers = 256MBCopy to Clipboard Copied! Toggle word wrap Toggle overflow postgresql サービスを再起動します。
systemctl restart postgresql
# systemctl restart postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
同時コンテンツホスト登録の増加
システムレベルの制限への到達を回避するために、最大 250 の同時コンテンツホストを処理するようグローバルパッセンジャーキュー制限を増加できます。
グローバルパッセンジャーキューの上限を増やすには、以下の手順を実行します。
最大パッセンジャープールサイズを、Satellite Server で利用可能な物理 CPU コアの 1.5 倍に調整します。
たとえば、Satellite Server にコアが 16 個ある場合、最大パッセンジャープールサイズは 24 になります。この数は例として使用しているため、実際にはご使用の環境に応じた数を使用する必要があります。
/etc/httpd/conf.d/passenger.confファイルを編集して以下のテキストに一致するよう IfModule スタンザを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Foreman Passenger アプリケーション設定ファイル
/etc/httpd/conf.d/05-foreman-ssl.confを編集して、以下のテキストに一致するよう PassengerAppRoot で始まるスタンザを更新します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow Puppet Passenger アプリケーション設定ファイル
/etc/httpd/conf.d/25-puppet.confを編集して以下のテキストを仮想ホスト定義の最後に追加します。PassengerMinInstances 6 PassengerStartTimeout 90 PassengerMaxPreloaderIdleTime 0 PassengerMaxRequests 10000 PassengerPreStart https://example.com:8140
PassengerMinInstances 6 PassengerStartTimeout 90 PassengerMaxPreloaderIdleTime 0 PassengerMaxRequests 10000 PassengerPreStart https://example.com:8140Copy to Clipboard Copied! Toggle word wrap Toggle overflow /var/lib/pgsql/data/postgresql.confファイルで最大接続数を変更します。max_connections = 500
max_connections = 500Copy to Clipboard Copied! Toggle word wrap Toggle overflow postgresql サービスを再起動します。
systemctl restart postgresql
# systemctl restart postgresqlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
qdrouterd 向けオープンファイルの最大数の増加
登録されているコンテンツホストの数が 1000 を超える場合、qdrouterd はオープンファイルのデフォルトの最大数に到達することがあります。この問題を回避するには、Satellite サーバーとすべての外部 Capsule サーバーのオープンファイルの最大数を増加します。
以下の式を使用して、オープンファイルの必要な最大数を計算します。
(3 x コンテンツホストの数) + 100
(3 x コンテンツホストの数) + 100Copy to Clipboard Copied! Toggle word wrap Toggle overflow たとえば、1020 のコンテンツホストの場合、新しい最大数は 3160 ((3 x 1020) + 100) に設定します。
/etc/systemd/system/qdrouterd.service.d/limits.confファイルを作成し、以下のテキストを追加します。[Service] LimitNOFILE=maximum_number_of_files
[Service] LimitNOFILE=maximum_number_of_filesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 変更をユニットに適用します。
systemctl daemon-reload
# systemctl daemon-reloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow Satellite のサービスを再起動します。
foreman-maintain service restart
# foreman-maintain service restartCopy to Clipboard Copied! Toggle word wrap Toggle overflow
ホスト登録の遅れを減少
Satellite と、登録した各ホストの間の接続は、証明書を使用することで保護されています。ホストを登録すると、Satellite は、識別証明書と Puppet 証明書の 2 つを作成します。各証明書の作成に使用されるアルゴリズムでは、Red Hat Enterprise Linux カーネルのランダムなデータが必要になります。ホストを登録する際に十分なエントロピーが利用できない場合は、エントロピーのレベルが十分になるまで遅延が発生します。環境が非常に大きく、10,000 台以上のホストを使用する場合は、エントロピーが足りなくなるため、ホスト登録にかかる速度が遅くなる可能性があります。Linux カーネルで利用可能なエントロピーを増やし、Satellite のパフォーマンスをリスクを減らすための方法をいくつか使用できます。
デフォルトでは、Linux カーネルは、乱数のソースとして /dev/random デバイスを使用します。このデバイスはブロックデバイスで、エントロピーの数が少なく、乱数出力を正しく生成できないと判断した場合には、乱数の生成を停止します。それがこの待ち時間となり、ホストの登録に遅れを発生します。この問題を解決するには、ブロックデバイスではない、/dev/urandom デバイスを使用します。
ハードウェアサーバーの中には、ハードウェアの乱数ジェネレーターが含まれるものもあります。その乱数ジェネレーターを Red Hat Enterprise Linux カーネルがサポートする場合は、それを乱数のソースとして使用できます。詳細は、ハードウェアベンダーのドキュメントを参照してください。
仮想マシンで Satellite をホストしている場合には、ハードウェアサーバーの乱数ジェネレーターを、それがホストする仮想マシンで利用できるようにするものもあります。Red Hat Virtualization には、Red Hat Virtualization ホストからのエントロピーへの KVM 仮想マシンアクセスを提供する virtio RNG (乱数ジェネレーター) デバイスがあります。Red Hat Enterprise Linux 7.0 を実行しているゲストには、rngd をインストールして設定する必要があります。Red Hat Enterprise Linux 7.1 以降を実行しているゲストでは、ゲストのカーネルが、必要に応じてホストからエントロピーを取得します。ホストの乱数ジェネレーターをゲストと共有している場合は、ハードウェアの乱数ジェネレーターを使用することが推奨されます。
ゲストにおける乱数ジェネレーターの詳細は Red Hat Enterprise Linux 7 『仮想化の導入および管理ガイド』の「乱数ジェネレーターデバイス」を参照してください。その他のハイパーバイザーについては、ベンダーのドキュメントを参照してください。
乱数ジェネレーターデーモン (rngd) の詳細は Red Hat Enterprise Linux 7 の『セキュリティーガイド』の「乱数ジェネレーターの使用」を参照してください。