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>.js
或editor.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
- 提供足够的内存
插件消耗 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
- 指定此插件的内存限值。
-
在插件定义 -