LoginSignup
7
6

More than 1 year has passed since last update.

WSL2の理解度を深める、Ubuntu と Docker Desktop とコンテナ の知見(その1/4)

Last updated at Posted at 2021-07-18

その1 この記事
その2 https://qiita.com/ssugimoto/items/1b19083f5045e190e4ae
その3 https://qiita.com/ssugimoto/items/3b4a26711604bb6d56d2
その4 https://qiita.com/ssugimoto/items/a14262fa0bc8f60efee8

Windows 10 wsl2 + Docker Desktopを使った知見とwsl2 とは

知見(ノウハウ)といっても、wsl2の実体・仕組みの理解までは奥が深い

過去の類似記事でコンテナ使ってみたケース

WSL2を使う場合に気をつけること

コンテナ内からWindowsディレクトリをマウントして使うとめちゃくちゃ遅いです

  • https://speakerdeck.com/noriyukitakei/wslvscodedocker?slide=43 と 44ページのスライド参照。測定結果では、0.2秒と105秒の差。
  • 自身でも試した時の体感では10倍以上の差
  • Macのdocker desktopでもディスクアクセスが遅いと言われていたけど、その遅さと非にならないレベルで遅い(Mac Book Pro 2016 と 2019でローカルをマウントしても、そこまで遅さは感じなかった)
  • 構成として、Docker desktop + wsl2有効 + Linuxのコンテナ + LinuxコンテナからWindowsのディレクトリをマウント をしている場合(Linuxのコンテナは、wsl2のUbuntuではない)、下記の図のようなイメージ

image.png

回避策

マイクロソフト公式の情報(WSL1とWSL2での、WSL1を使う方が良いケース)

https://docs.microsoft.com/ja-jp/windows/wsl/compare-versions
以下、引用

例外的に WSL 2 ではなく WSL 1 を使用する場合
  • プロジェクト ファイルを Windows ファイル システムに格納する必要がある。 WSL 1 を使用すると、Windows からマウントされたファイルにより高速にアクセスできます。

  • WSL Linux ディストリビューションを使用して Windows ファイル システム上のプロジェクト ファイルにアクセスする予定で、これらのファイルを Linux ファイル システムに格納できない場合は、WSL 1 を使用することにより、OS ファイル システム間でより高速なパフォーマンスを実現できます。

  • 同じファイルに対して Windows と Linux の両方のツールを使用したクロスコンパイルを必要とするプロジェクト。

  • Windows オペレーティング システムと Linux オペレーティング システムの間のファイル パフォーマンスは WSL 1 の方が WSL 2 よりも高速です。そのため、Windows アプリケーションを使用して Linux ファイルにアクセスする場合、現時点では WSL 1 を使用する方がより高速なパフォーマンスを得られます。

  • プロジェクトには、シリアル ポートまたは USB デバイスへのアクセスが必要です。
    WSL 2 に関する FAQ によれば、WSL 2 にはシリアル ポートにアクセスするためのサポートは含まれていません。 シリアル ポートに関する未解決のイシューは、サポートがまだ追加されていないことを示しています。

  • 厳密なメモリ要件がある
    WSL 2 のメモリ使用量は、使用時に拡張および縮小されます。 プロセスによってメモリが解放されると、それは自動的に Windows に返されます。 ただし現在、WSL 2 では、WSL インスタンスがシャットダウンされるまで、メモリ内のキャッシュ ページが解放されて Windows に戻されることはありません。 WSL セッションが長時間実行されている場合、または非常に大量のファイルにアクセスする場合、このキャッシュによって Windows 上のメモリが占有される可能性があります。 WSL の Github リポジトリ イシュー 4166 で、このエクスペリエンスを改善するための作業を追跡しています。

7
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6