搜索

2.6. 在 OpenShift 4.x 上调整 Fuse 控制台的性能

download PDF

默认情况下,Fuse 控制台使用以下 Nginx 设置:

  • clientBodyBufferSize: 256k
  • proxyBuffers: 16 128k
  • subrequestOutputBufferSize: 10m

注: 有关这些设置的描述,请参阅 Nginx 文档 :http://nginx.org/en/docs/dirindex.html

要调整 Fuse 控制台的性能,您可以设置任何 clientBodyBufferSizeproxyBufferssubrequestOutputBufferSize 环境变量。例如,如果您使用 Fuse Console 监控多个 pod 和路由(例如,总共 100 个路由),您可以通过将 Fuse Console 的 subrequestOutputBufferSize 环境变量设置为 100 m ,从而解决加载超时问题。

如何设置这些环境变量取决于您如何在 Openshift 4.x 上安装 Fuse 控制台:

  • 使用 Fuse Console Operator
  • 使用 Fuse Console 模板

2.6.1. Fuse Console Operator 安装的性能调优

在 Openshift 4.x 上,您可以在部署 Fuse 控制台前或之后设置 Nginx 性能调优环境变量。如果您这样做了,OpenShift 会重新部署 Fuse 控制台。

先决条件

流程

您可以在部署 Fuse 控制台前或之后设置环境变量。

  • 在部署 Fuse 控制台前设置环境变量:

    1. 在 OpenShift web 控制台中,在安装了 Fuse Console Operator 的项目中,选择 Operators> Installed Operators> Red Hat Integration - Fuse Console
    2. 单击 Hawtio 选项卡,然后单击 Create Hawtio
    3. Create Hawtio 页面中,在 Form view 中滚动到 Config> Nginx 部分。
    4. 展开 Nginx 部分,然后设置环境变量。例如:

      • clientBodyBufferSize: 256k
      • proxyBuffers: 16 128k
      • subrequestOutputBufferSize: 100m
    5. 保存配置。
    6. Create 部署 Fuse 控制台。
    7. 部署完成后,打开 Deployments> fuse-console 页面,然后点 Environment 来验证环境变量是否位于列表中。
  • 在部署 Fuse 控制台后设置环境变量:

    1. 在 OpenShift Web 控制台中,打开部署了 Fuse 控制台的项目。
    2. 选择 Operators> Installed Operators> Red Hat Integration - Fuse Console
    3. 单击 Hawtio 选项卡,然后单击 fuse-console
    4. 选择 Actions> Edit Hawtio
    5. 在 Editor 窗口中,向下滚动到 spec 部分。
    6. spec 部分,添加新的 nginx 部分并指定一个或多个环境变量,例如:

      apiVersion: hawt.io/v1alpha1
      kind: Hawtio
      metadata:
        name: fuse-console
      spec:
        type: Namespace
        nginx:
          clientBodyBufferSize: 256k
          proxyBuffers: 16 128k
          subrequestOutputBufferSize: 100m
      .
      .
      .
    7. 点击 Save

      OpenShift 重新部署 Fuse 控制台。

    8. 重新部署完成后,打开 Workloads> Deployments> fuse-console 页面,然后点 Environment 查看列表中的环境变量。

2.6.2. Fuse Console 模板安装的性能调优

在 Openshift 4.x 上,您可以在部署 Fuse 控制台前或之后设置 Nginx 性能调优环境变量。如果您这样做了,OpenShift 会重新部署 Fuse 控制台。

先决条件

流程

您可以在部署 Fuse 控制台前或之后设置环境变量。

  • 在部署 Fuse 控制台前设置环境变量:

    1. 确定您要使用的 Fuse Console 模板:

      • 集群模板(fuse-console-cluster-os4.json)
      • 带有可配置 RBAC(fuse-console-cluster-rbac.yml)的集群模板。
      • 命名空间模板(fuse-console-namespace-os4.json)
      • 带有可配置 RBAC(fuse-console-namespace-rbac.yml)的命名空间模板。
    2. 编辑用于 Fuse 控制台模板的本地副本,以包括 NGINX_CLIENT_BODY_BUFFER_SIZE、NINX_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
    3. 保存您的更改。
    4. 按照 在 OpenShift 4.x 中设置 Fuse 控制台 中所述,请按照安装和部署 Fuse 控制台 的步骤进行操作。
  • 在部署 Fuse 控制台后设置环境变量:

    1. 在终端窗口中,登录 OpenShift 集群。
    2. 打开在其中部署 Fuse 控制台的项目。例如,如果在 myfuse 项目中部署了 Fuse 控制台,使用以下命令:

      oc project myfuse

    3. 获取 Fuse 控制台部署的名称:

      oc get deployments

      此命令返回当前项目中运行的部署列表。例如:

      NAME                        READY   UP-TO-DATE   AVAILABLE    AGE
      fuse-console                1/1     1               1           114m
    4. 运行以下一个或多个命令来设置 Fuse 控制台部署的环境变量:

      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 控制台。

    5. 重新部署完成后,验证环境变量设置:

      1. 获取 Fuse Console pod 名称:

        oc get pods
      2. 运行以下命令来查看环境设置

        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 控制台的性能调整功能,您可以查看有大量 MBeans 的应用程序。要使用这个功能,请执行以下步骤:

先决条件

流程

  1. 为应用程序增加内存限值。

    将内存限制增加到 512 Mi,因此应用程序在到达 Fuse 控制台前不会发生 OOM 错误。对于 Fuse 快速入门,请编辑应用程序的 src/main/jkube/deployment.yml 文件。

    spec:
      template:
        spec:
          containers:
            -
              resources:
                [...]
                limits:
                  cpu: "1.0"
                  memory: 512Mi
  2. 确保 Fuse Console DeploymentDeploymentConfig 有足够内存限制。如果没有足够的值,将限制从 200Mi 增加到 512Mi。
  3. 如果您在 nginx 日志中看到"too big 子请求响应时发送到客户端"错误,请应用 第 2.6.1 节 “Fuse Console Operator 安装的性能调优” 部分提到的解决方案。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.