動作の低下または切断 (9Pファイルシステムの飽和)
WSL で Devin Desktop を利用している場合 (Remote - WSL 経由) 、エディタの動作が遅くなったり、応答しなくなったり、WSL バックエンドとの接続が繰り返し切断されたりすることがあります。これは多くの場合、拡張機能が WSL ファイルシステム上で過剰にファイル監視やインデックス作成を行い、Windows と WSL の Linux 環境をつなぐファイルシステムブリッジである Plan 9 (9P) プロトコル を飽和させることが原因です。 この問題は、大規模なリポジトリや、複数の言語サーバーが同時に実行されている環境で特に発生しやすくなります。症状
- WSL に接続していると、Devin Desktop の動作が明らかに遅くなったり、重くなったりする
- エディタが WSL バックエンドから頻繁に切断され、再接続を繰り返す
- 切断は、アクティブな開発中 (例: Cascade の使用中) と エディタがアイドル状態のときの両方で発生する
- Devin Desktop がクラッシュしたり応答しなくなったりして、IDE と WSL の両方を再起動する必要がある (
wsl --shutdown) - 32 GB 以上の RAM を搭載したシステムでも、WSL のメモリ使用量が時間の経過とともに増加する
- WSL の診断ログに
P9 Reply_Rlerrorイベント (ファイル未検出エラー) が大量に記録される - WSL の外で Devin Desktop を使用している場合 (例: ローカルの Windows フォルダを開いている場合) 、パフォーマンスは正常である
- 一般的な回避策 (WSL の再起動、Devin Desktop の再インストール、
.wslconfigのメモリ増加) だけでは、この問題は解消しない
根本原因
Windows と WSL の Linux ファイルシステム間の通信には Plan 9 (9P) プロトコルが使われており、ネイティブのファイルシステムアクセスと比べるとスループットが制限されます。 WSL 環境に拡張機能をインストールすると、その一部がワークスペース全体に対して積極的にファイル監視やインデックス作成を行います。大規模なリポジトリ (例: 250,000 超のファイル、5 GB 超) では、その結果 9P ブリッジ経由で膨大な量のファイルシステム操作が発生し、次のような問題を引き起こすことがあります。- プロトコルの処理能力を飽和させる
- ファイルが見つからないエラー (
Reply_Rlerror) を何千件も発生させる - Devin Desktop と WSL バックエンド間の接続が切断される原因になる
- 時間の経過とともに WSL 内のメモリ負荷の増大につながる
解決策
1. WSL を最新バージョンに更新する (最初に行うことを推奨)
WSL で発生する切断やパフォーマンスの問題の多くは、WSL 自体を更新するだけで解消します。新しい WSL リリースには、9P ファイルシステムの安定性や接続信頼性の改善が含まれています。 Windows ホストで PowerShell (またはコマンド プロンプト) を開き、次を実行します。2. WSL 内の Devin Desktop サーバーのクリーン再インストール
WSL 内の Devin Desktop サーバーのディレクトリを削除し、次回接続時に Devin Desktop に再インストールさせます。レガシーの~/.windsurf-server ディレクトリが存在する場合は、それも削除してください。削除しないと、次回接続時にその内容が ~/.devin-server にコピーし戻されます:
3. インストールする拡張機能を最小限にする (最も効果が高い)
作業中のリポジトリで本当に必要な拡張機能だけをインストールしてください。- WSL に接続した状態で、Devin Desktop の拡張機能パネルを開きます
- WSL 環境にインストールされている拡張機能を確認します (ローカル環境だけではありません)
- 不要な拡張機能は無効化またはアンインストールします。特に、負荷の高いファイル監視やインデックス作成を行うものに注意してください
- Vue (Volar) — Vue 以外のプロジェクトでも、9P ブリッジ経由で過剰なファイルのインデックス作成を引き起こすことが確認されています。この拡張機能をアンインストールしただけで、複数のユーザーで切断が解消されています。
- その他のフレームワーク固有の言語拡張機能 (Angular、Svelte など) も、インストールされていて現在のワークスペースで不要な場合は、同様の挙動を示すことがあります。
4. WSL のリソース制限を最適化する
Windows ホストで、システムに適したリソース制限を設定するために、%USERPROFILE%\.wslconfig ファイルを作成または編集します (例: C:\Users\<YourUser>\.wslconfig) 。
注:値は、システムで使用可能なリソースに応じて調整してください。 ファイルを保存したら、WSL を再起動してください:autoMemoryReclaim設定は WSL 2.7.3.0 以降で削除されました。WSL 2.7.3.0 以降を実行している場合は、この行を省略してください。wsl --versionで WSL のバージョンを確認できます。
原因の特定
WSL の診断ログで 9P エラーを確認する
原因が 9P の飽和であることを確認するには、WSL の診断ログを収集します:Reply_Rlerror イベントが大量に発生していないか確認してください。通常、数千件 (またはそれ以上) 発生している場合は、WSL 内の拡張機能またはプロセスが過剰なファイルシステム リクエストを生成しており、9P ブリッジがそれを処理しきれていないことを示します。
どの対処法を使うべきか
- まずは WSL を更新してください。
wsl --updateを実行するだけで解決する問題が多くあります。WSL 2.7.3.0+ には安定性を大きく改善する変更が含まれています。 (最も簡単な対処法です。) - WSL に現在は不要な拡張機能が多数インストールされている場合や、別のエディタから拡張機能を移行した場合は、拡張機能を最小限にすることを検討してください。 (最も効果の大きい変更です。)
- Devin Desktop のサーバー状態が破損している、または古い状態のまま残っている可能性がある場合は、サーバーをクリーン再インストールしてください (たとえば、更新に失敗した後や、以前クラッシュした後など) 。
- WSL がホストのリソースを過剰に消費している場合や、これまでリソース制限を設定していない場合は、
.wslconfigを最適化してください。 (WSL 全体の安定性向上につながります。)
VPN またはゼロトラスト ソフトウェア使用時に WSL に接続できない
VPN またはゼロトラスト ソフトウェア (Twingate、Tailscale、Zscaler、Cloudflare WARP、GlobalProtect など) によって WSL 内からの外向きのネットワーク通信がブロックされると、Devin Desktop はCouldn't install vscode server on remote server, install script returned non-zero exit status というエラーを表示して WSL への接続に失敗します。
症状
- Devin Desktop で、WSL への接続時に
Error resolving authority/install script returned non-zero exit statusが表示される - WSL 自体は動作しており (
wsl -d Ubuntu -- echo helloは成功する) 、curlも WSL 内で実行できるがタイムアウトする - VPN またはゼロトラストソフトウェアをインストールまたは更新した後から、この問題が発生し始めた
根本原因
WSL 2 はデフォルトで、NAT ベースの仮想ネットワーク経由でトラフィックをルーティングします。VPN やゼロトラストソフトウェアでは、この仮想ネットワークからのトラフィックが転送されないことが多いため、Devin Desktop サーバーのダウンロードはエラーが表示されないまま失敗します。解決策
1. ミラーネットワーキングを有効にする
WSL の設定ファイルを編集し、ミラーネットワーキングを有効にします (通常はC:\Users\<YourUser>\.wslconfig) 。
以下を追加します:
注: WSL 2.0.0 以降が必要です。確認するにはwsl --versionを実行し、必要に応じてwsl --updateを実行してアップグレードしてください。
2. 代替手段: VPN を一時的に切断する
.wslconfig を変更できない場合は、VPN/ZTNA を切断し、Devin Desktop でサーバーをインストールしてから、再接続してください。今後 Devin Desktop を更新する際には、WSL からのネットワークアクセスが再び必要になります。
