9.3. 慢速工作区故障排除


有时,工作区可能需要很长时间才能启动。调优可减少这个开始时间。根据选项,管理员或用户可以进行调优。

本节包含多个调优选项,用于更快地启动工作区或提高工作空间运行时性能。

9.3.1. 提高工作空间启动时间

使用 Image Puller 缓存镜像

Role: Administrator

在启动工作区时,OpenShift 从 registry 中拉取镜像。工作区可以包含多个容器,意味着 OpenShift 会拉取 Pod 的镜像(每个容器一个)。根据镜像和带宽的大小,可能需要很长时间。

Image Puller 是一个可缓存每个 OpenShift 节点上的镜像的工具。因此,预拉取镜像可以提高开始时间。请参阅 https://access.redhat.com/documentation/zh-cn/red_hat_openshift_dev_spaces/3.5/html-single/administration_guide/index#administration-guide:caching-images-for-faster-workspace-start

选择更好的存储类型

Role: Administrator 和 user

每个工作区都附加了一个共享卷。此卷存储项目文件,以便在重启工作区时,更改仍然可用。根据存储,附加时间最多可能需要几分钟,I/O 可能很慢。

离线安装

Role: Administrator

OpenShift Dev Spaces 的组件是 OCI 镜像。以离线模式设置 Red Hat OpenShift Dev Spaces,以减少运行时的任何额外下载,因为所有操作都需要在启动时可用。请参阅 https://access.redhat.com/documentation/zh-cn/red_hat_openshift_dev_spaces/3.5/html-single/administration_guide/index#administration-guide:installing-che-in-a-restricted-environment

优化工作区插件

Role: User

选择各种插件时,每个插件都可以带来自己的 sidecar 容器,它是一个 OCI 镜像。OpenShift 拉取这些 sidecar 容器的镜像。

减少插件数量,或者禁用它们以查看启动时间是否更快。另请参阅 https://access.redhat.com/documentation/zh-cn/red_hat_openshift_dev_spaces/3.5/html-single/administration_guide/index#administration-guide:caching-images-for-faster-workspace-start

减少公共端点数量

Role: Administrator

对于每个端点,OpenShift 正在创建 OpenShift Route 对象。根据底层配置,此创建速度可能会较慢。

要避免这个问题,请减少暴露。例如,要自动检测容器内监听的新端口,并使用本地 IP 地址(127.0.0.1)重定向进程的流量,Chee-Theia IDE 插件有三个可选路由。

通过减少端点的数量并检查所有插件的端点,工作区启动可能会更快。

CDN 配置

IDE 编辑器使用 CDN (内容交付网络)来提供内容。检查内容是否使用 CDN 到客户端(或用于离线设置的本地路由)。

要检查,请在浏览器中打开 Developer Tools,并在 Network 选项卡中检查 供应商vendor.<random_id>.jseditor.main the 应该来自 CDN URL。

9.3.2. 提高工作区运行时性能

提供足够的 CPU 资源

插件消耗 CPU 资源。例如,当插件提供 IntelliSense 功能时,添加更多 CPU 资源可以提高性能。

确保 devfile 定义 devfile.yaml 中的 CPU 设置正确:

apiVersion: 1.0.0

components:
  -
    type: chePlugin
    id: __<plugin_id>__
    cpuLimit: 1360Mi 1
    cpuRequest: 100m 2
1
指定插件的 CPU 限制。
2
指定插件的 CPU 请求。
提供足够的内存

插件消耗 CPU 和内存资源。例如,当插件提供 IntelliSense 功能时,收集数据可能会消耗分配给容器的所有内存。

为插件提供更多内存可以提高性能。确保内存设置的正确性:

  • 在插件定义 - meta.yaml 文件中
  • 在 devfile 定义 - devfile.yaml 文件中

    apiVersion: v2
    
    spec:
      containers:
        - image: "quay.io/my-image"
          name: "vscode-plugin"
          memoryLimit: "512Mi" 1
      extensions:
        - https://link.to/vsix
    1
    指定插件的内存限值。

    在 devfile 定义中(devfile.yaml):

    apiVersion: 1.0.0
    
    components:
      -
        type: chePlugin
        id: __<plugin_id>__
        memoryLimit: 1048M  1
        memoryRequest: 256M
    1
    指定此插件的内存限值。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.