hack のためのネタ帳, etc,,,

公式ページ等

参考になるページ等

Docker

Ubuntu

Tips

導入

まず、OptionalFeatures.exe を実行して以下の二つを ON に
  • Linux 用 Windows サブシステム
  • 仮想マシン プラットフォーム
PowerShell からやる場合は管理者モードで立ち上げて
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
ここで、要再起動

再起動後、管理者モードで PowerShell を起動して WSL の distribution の状況を確認
> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         1
WSL1 で Ubuntu を入れてたので上記のような状況となっていた。

wsl の help


distribution を WSL1 から WSL2 に変換
> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
と言われるので、 から、Linux カーネル更新プログラム パッケージ wsl_update_x64.msi を拾って来て実行。

導入が済んだら再度変換
> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

確かに時間かかるんだけど、
CPU 負荷の大半は Antimalware Service Executable が食ってて、こいつが足引っ張ってそうな雰囲気。どうかと思う。

上記 WSL2 に関する情報
変換後の状況
> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

bash 外部コマンド呼び出し性能比較

Panasonic Let's note CF-RZ5, Windows 10 2004, Intel Core m5-6Y54 @ 1.10/2.70GHz 2C/4T
$ # Cygwin
$ t1=$(date +%s%N); for i in {1..100}; do date; done >/dev/null; t2=$(date +%s%N); echo "$(( (t2-t1)/100/1000 )) us/loop, $(( 100 * 1000**3 / (t2-t1) )) loop/s"
34447 us/loop, 29 loop/s
$ # WSL1
$ t1=$(date +%s%N); for i in {1..100}; do date; done >/dev/null; t2=$(date +%s%N); echo "$(( (t2-t1)/100/1000 )) us/loop, $(( 100 * 1000**3 / (t2-t1) )) loop/s"
12716 us/loop, 78 loop/s
$ # WSL2
$ t1=$(date +%s%N); for i in {1..100}; do date; done >/dev/null; t2=$(date +%s%N); echo "$(( (t2-t1)/100/1000 )) us/loop, $(( 100 * 1000**3 / (t2-t1) )) loop/s"
1248 us/loop, 800 loop/s
$ # Native : Ubuntu 20.04 LTS (2002-06-08)
$ t1=$(date +%s%N); for i in {1..100}; do date; done >/dev/null; t2=$(date +%s%N); echo "$(( (t2-t1)/100/1000 )) us/loop, $(( 100 * 1000**3 / (t2-t1) )) loop/s"
1340 us/loop, 746 loop/s
MSI H97GAMING3, Ubuntu 20.04 LTS, Intel Core i7-4770 @ 3.40/3.90GHz 4C/8T
$ # Native
$ t1=$(date +%s%N); for i in {1..100}; do date; done >/dev/null; t2=$(date +%s%N); echo "$(( (t2-t1)/100/1000 )) us/loop, $(( 100 * 1000**3 / (t2-t1) )) loop/s"
1200 us/loop, 832 loop/s
Core m5-6Y54 で Core i7-4770 の native 環境に近い性能出てるんのはちょっと驚き

VirtualBox

6.0.14 だと仮想化機能が WSL2 と干渉しているのかエラーが出て VM を起動できなかったが
6.1.18 だと問題なく VM を起動できてるようだ。
ただし、なんかえらく CPU 食ってて重い。なぜだ?

2020-05-31: 追記
Ubuntu 16.04.5 LTS だと
なんか Hardware Rendering が効いてない模様。
VBoxVGA, VMSVGA, VBoxSVGA いずれでも効かない。

しばらく放っておくと CPU 負荷は収まる模様。

Visual Studio Code

Remote-Development 入れてると WLS 側から code ってするだけで Remote-Development 経由で開かれることに気づいた。
WSL1 の時からなんだと思うけど、これ、ちょっと革命的かも

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Wiki内検索

フリーエリア

編集にはIDが必要です