2.6. OpenShift 4.x での Fuse Console のパフォーマンスチューニング
デフォルトでは、Fuse Console は以下の Nginx 設定を使用します。
-
clientBodyBufferSize: 256k
-
proxyBuffers: 16 128k
-
subrequestOutputBufferSize: 10m
注記: これらの設定の説明は、Nginx のドキュメント (http://nginx.org/en/docs/dirindex.html) を参照してください。
Fuse Console のパフォーマンスを調整するには、clientBodyBufferSize
、proxyBuffers
、および subrequestOutputBufferSize
環境変数を設定します。たとえば、Fuse Console を使用して多数の Pod およびルート (合計 100 のルートなど) を監視する場合、Fuse Console の subrequestOutputBufferSize
環境変数を 60m
から 100m
の間で設定することで、ロードタイムアウトの問題を解決することができます 。
これらの環境変数の設定方法は、OpenShift 4.x に Fuse Console をインストールする方法によって異なります。
- Fuse Console Operator の使用
- Fuse Console テンプレートの使用
2.6.1. Fuse Console Operator インストールのパフォーマンスチューニング
Openshift 4.x では、Fuse Console のデプロイ前後に Nginx パフォーマンスチューニング環境変数を設定できます。これを後で行うと、OpenShift は Fuse Console を再デプロイします。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin
権限がある。 - OperatorHub を使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイの説明どおりに、Fuse Console Operator がインストールされている必要があります。
手順
Fuse Console のデプロイ前後に環境変数を設定できます。
Fuse Console をデプロイする前に環境変数を設定するには、以下を実行します。
- OpenShift Web コンソールから、Fuse Console Operator がインストールされているプロジェクトで、Operators > Installed Operators > Red Hat Integration - Fuse Console を選択します。
- Hawtio タブをクリックし、Create Hawtio をクリックします。
- Create Hawtio ページで、Form ビュー で Config > Nginx セクションまでスクロールダウンします。
Nginx セクションをデプロイメントしてから、環境変数を設定します。以下に例を示します。
- clientBodyBufferSize: 256k
- proxyBuffers: 16 128k
- subrequestOutputBufferSize: 100m
- 設定を保存します。
- Create をクリックして Fuse Console をデプロイします。
- デプロイメントが完了したら、Deployments > fuse-console ページを開いて Environment をクリックし、環境変数がリストにあることを確認します。
Fuse Console のデプロイ後に環境変数を設定するには、以下を実行します。
- OpenShift Web コンソールで、Fuse Console がデプロイされているプロジェクトを開きます。
- Operators > Installed Operators > Red Hat Integration - Fuse Console の順に選択します。
- Hawtio タブをクリックし、fuse-console をクリックします。
- Actions > Edit Hawtio を選択します。
-
Editor ウィンドウで、
spec
セクションまでスクロールダウンします。 以下のように、
spec
セクションで、新規のnginx
セクションを追加し、1 つ以上の環境変数を指定します。apiVersion: hawt.io/v1alpha1 kind: Hawtio metadata: name: fuse-console spec: type: Namespace nginx: clientBodyBufferSize: 256k proxyBuffers: 16 128k subrequestOutputBufferSize: 100m . . .
Save をクリックします。
OpenShift は Fuse Console を再デプロイします。
- 再デプロイメントが完了したら、Workloads > Deployments > fuse-console ページを開いてから Environment をクリックし、リストの環境変数を確認します。
2.6.2. Fuse Console テンプレートインストールのパフォーマンスチューニング
Openshift 4.x では、Fuse Console のデプロイ前後に Nginx パフォーマンスチューニング環境変数を設定できます。これを後で行うと、OpenShift は Fuse Console を再デプロイします。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin
権限がある。 - OpenShift 4.x サーバーでの Fuse イメージストリームおよびテンプレートのインストールの説明どおりに、OpenShift に Fuse Console テンプレートがインストールされている必要があります。
手順
Fuse Console のデプロイ前後に環境変数を設定できます。
Fuse Console をデプロイする前に環境変数を設定するには、以下を実行します。
使用する Fuse Console テンプレートを確認します。
-
クラスターテンプレート (
fuse-console-cluster-os4.json
) -
設定可能な RBAC が含まれるクラスターテンプレート (
fuse-console-cluster-rbac.yml
) -
namespace テンプレート (
fuse-console-namespace-os4.json
) -
設定可能な RBAC が含まれる namespace テンプレート (
fuse-console-namespace-rbac.yml
)
-
クラスターテンプレート (
以下の例のように、Fuse Console に使用する Fuse Console テンプレートのローカルコピーを編集し、
NGINX_CLIENT_BODY_BUFFER_SIZE
、NGINX_PROXY_BUFFERS
、および/またはNGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE
の環境変数を追加します。apiVersion: apps.openshift.io/v1 kind: DeploymentConfig metadata: name: fuse-console spec: template: spec: containers: - env: - name: NGINX_CLIENT_BODY_BUFFER_SIZE value: 256k - name: NGINX_PROXY_BUFFERS value: 16 128k - name: NGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE value: 100m
- 変更を保存します。
- OpenShift 4.x での Fuse Console の設定の説明にあるように、Fuse Console をインストールおよびデプロイする手順にしたがいます。
Fuse Console のデプロイ後に環境変数を設定するには、以下を実行します。
- ターミナルウィンドウで、OpenShift クラスターにログインします。
Fuse Console がデプロイされているプロジェクトを開きます。たとえば、Fuse Console が
myfuse
プロジェクトにデプロイされている場合は、以下のコマンドを使用します。oc project myfuse
Fuse Console デプロイメントの名前を取得します。
oc get deployments
このコマンドは、現在のプロジェクトで実行しているデプロイメントのリストを返します。以下に例を示します。
NAME READY UP-TO-DATE AVAILABLE AGE fuse-console 1/1 1 1 114m
以下のいずれかのコマンドを実行して、Fuse Console デプロイメントの環境変数を設定します。
oc set env dc/fuse-console NGINX_CLIENT_BODY_BUFFER_SIZE="256k" oc set env dc/fuse-console NGINX_PROXY_BUFFERS="16 128k" oc set env dc/fuse-console NGINX_SUBREQUEST_OUTPUT_BUFFER_SIZE="10m"
OpenShift は Fuse Console を再デプロイします。
再デプロイメントが完了したら、環境変数の設定を確認します。
Fuse Console の Pod 名を取得します。
oc get pods
次のコマンドを実行して、環境設定を表示します。
oc exec <fuse-console-podname> -- cat /opt/app-root/etc/nginx.d/nginx-gateway.conf | grep "Performance tuning" -A 3
たとえば、Pod 名が
fuse-console-6646cbbd4c-9rplg
である場合は、以下のコマンドを実行します。oc exec fuse-console-6646cbbd4c-9rplg -- cat /opt/app-root/etc/nginx.d/nginx-gateway.conf | grep "Performance tuning" -A 3
2.6.3. Fuse Console でアプリケーションを表示するためのパフォーマンスチューニング
Fuse console の強化されたパフォーマンスチューニング機能により、多数の MBean を持つアプリケーションを表示できます。この機能を使用するには、次の手順を実行します。
前提条件
-
OpenShift クラスターにアクセス可能な
cluster admin
権限がある。 - OperatorHub を使用した OpenShift 4.x での Fuse Console のインストールおよびデプロイの説明どおりに、Fuse Console Operator がインストールされている必要があります。
手順
アプリケーションのメモリー制限を増やします。
Fuse コンソールに到達する前にアプリケーションが OOM エラーでクラッシュしないように、メモリー制限を (たとえば 256Mi から 512 Mi に) 増やす必要があります。Fuse クイックスタートの場合、アプリケーションの
src/main/jkube/deployment.yml
ファイルを編集します。spec: template: spec: containers: - resources: [...] limits: cpu: "1.0" memory: 512Mi
- Fuse Console Deployment または DeploymentConfig に十分なメモリー制限があることを確認してください。不十分な場合は、たとえば 200Mi から 512Mi に制限を増やします。
- nginx ログにクライアントへの送信中に「too big subrequest response while sending to client」エラーが表示される場合は、「Fuse Console Operator インストールのパフォーマンスチューニング」 セクションに記載される解決策を適用します。