9.2. 速度の遅いワークスペースのトラブルシューティング
ワークスペースの起動には時間がかかる場合があります。チューニングにより、この起動時間を短縮できる場合があります。オプションによっては、管理者またはユーザーはチューニングを行うことができます。
このセクションでは、ワークスペースをより迅速に起動したり、ワークスペースのランタイムパフォーマンスを改善したりするためのチューニングオプションが複数含まれています。
9.2.1. ワークスペースの起動時間の改善
- Image Puller を使用したイメージのキャッシュ
ロール: 管理者
ワークスペースを起動すると、OpenShift はイメージをレジストリーからプルします。ワークスペースには、数多くのコンテナーを含めることができます。つまり OpenShift は、(コンテナーごとに 1 つの) Pod のイメージをプルするため、複数の Pod のイメージをプルすることを意味します。イメージのサイズと帯域幅によっては、これには時間がかかる場合があります。
Image Puller は、各 OpenShift ノードでイメージをキャッシュできるツールです。このため、プル前のイメージにより、起動時間が短縮されます。https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.15/html-single/administration_guide/index#administration-guide:caching-images-for-faster-workspace-start を参照してください。
- より適切なストレージタイプの選択
ロール: 管理者およびユーザー
すべてのワークスペースには共有ボリュームが割り当てられています。このボリュームはプロジェクトファイルを保存するため、ワークスペースを再起動する際に変更が引き続き利用できるようになります。ストレージによっては、割り当てに数分かかる可能性があり、I/O が遅くなる可能性があります。
- オフラインインストール
ロール: 管理者
OpenShift Dev Spaces のコンポーネントは OCI イメージです。Red Hat OpenShift Dev Spaces をオフラインモードでセットアップして、実行時の余分なダウンロードを減らします。これは、最初からすべてを利用できる必要があるためです。https://access.redhat.com/documentation/ja-jp/red_hat_openshift_dev_spaces/3.15/html-single/administration_guide/index#administration-guide:installing-che-in-a-restricted-environment を参照してください。
- パブリックエンドポイントの数の縮小
ロール: 管理者
それぞれのエンドポイントについて、OpenShift は OpenShift Route オブジェクトを作成します。基礎となる設定によっては、作成に時間がかかる場合があります。
この問題を回避するには、公開される部分を縮小します。たとえば、コンテナー内でリッスンする新規ポートを自動的に検出し、ローカル IP アドレス (
127.0.0.1
) を使用してプロセスのトラフィックをリダイレクトする場合、Microsoft Visual Code - Open Source には 3 つのオプションのルートがあります。エンドポイントの数を減らし、すべてのプラグインのエンドポイントをチェックすることで、ワークスペースの起動が速くなります。
9.2.2. ワークスペースのランタイムパフォーマンスの改善
- 十分な CPU リソースを提供する
プラグインは CPU リソースを消費します。たとえば、プラグインが IntelliSense 機能を提供する場合、CPU リソースを追加するとパフォーマンスが向上します。
devfile 定義
devfile.yaml
の CPU 設定が正しいことを確認します。components: - name: tools container: image: quay.io/devfile/universal-developer-image:ubi8-latest cpuLimit: 4000m 1 cpuRequest: 1000m 2
- 十分なメモリーを提供する
プラグインは CPU およびメモリーリソースを消費します。たとえば、プラグインが IntelliSense 機能を提供する場合、データを収集すると、コンテナーに割り当てられるすべてのメモリーを消費する可能性があります。
コンテナーにより多くのメモリーを提供すると、パフォーマンスが向上します。devfile 定義の
devfile.yaml
ファイルのメモリー設定が正しいことを確認してください。components: - name: tools container: image: quay.io/devfile/universal-developer-image:ubi8-latest memoryLimit: 6G 1 memoryRequest: 512Mi 2