搜索

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 控制台监控大量 pod 和路由(例如,共 100 个路由),您可以通过将 Fuse Console 的 subrequestOutputBufferSize 环境变量设置为在 60m100m 之间来解决加载超时问题。

如何设置这些环境变量取决于您在 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 视图中,向下滚动到 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 控制台模板:

      • 集群模板(fuse-console-cluster-os4.json)
      • 带有可配置的 RBAC 的集群模板(fuse-console-cluster-rbac.yml)
      • 命名空间模板(fuse-console-namespace-os4.json)
      • 带有可配置的 RBAC (fuse-console-namespace-rbac.yml)的命名空间模板
    2. 编辑您要用于 Fuse 控制台的 Fuse Console 模板的本地副本,使其包含 NGINX_CLIENT_BODY_BUFFER_SIZENGINX_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 控制台中查看应用程序的性能调整

通过增强的 Fuse 控制台性能调优功能,您可以查看具有大量 MBeans 的应用程序。要使用此功能,请执行以下步骤。

先决条件

流程

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

    需要增加内存限值,例如从 256Mi 增加到 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 subrequest 响应 while to client" 错误,请应用 第 2.6.1 节 “Fuse Console Operator 安装的性能调整” 部分中提到的解决方案。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.