wsl

filesystem performance is slow

workaround

Prefer ~/ over /mnt when filesystem performance is needed

wsl uses all the ram

yolo

Force linux to drop the page cache

echo 1 | sudo tee /proc/sys/vm/drop_caches

limit memory assigned to WSL2 VM

Create a %UserProfile%\.wslconfig file

[wsl2]
memory=6GB
swap=0
localhostForwarding=true

running windows applications in wsl

Controlled via /etc/wsl.conf:

[interop]
enabled=true
appendWindowsPath=false

More info

integrate beyond compare in wsl

Inside ~/.gitconfig:

[diff]
        tool = bcomp
[difftool]
        prompt = false
[difftool "bcomp"]
        path = "/mnt/c/Program\\ Files/Beyond\\ Compare\\ 4/BCompare.exe"
        cmd = "/mnt/c/Program\\ Files/Beyond\\ Compare\\ 4/BCompare.exe" "$(wslpath -aw $LOCAL)" "$(wslpath -aw $REMOTE)"
[merge]
        tool = bcomp
[mergetool]
        prompt = false
[mergetool "bcomp"]
        path = "/mnt/c/Program\\ Files/Beyond\\ Compare\\ 4/BCompare.exe"
        cmd = "/mnt/c/Program\\ Files/Beyond\\ Compare\\ 4/BCompare.exe" "$(wslpath -aw $LOCAL)" "$(wslpath -aw $REMOTE)" "$(wslpath -aw $BASE)" "$(wslpath -aw $MERGED)"

increase number of open files

Running into EMFILE errors because too many files open? (looking at you npm i):

mylimit=8000
sudo prlimit --nofile=$mylimit --pid $$; ulimit -n $mylimit
su $USER

or

sudo prlimit -p "$$" --nofile=10000:10000
exec $SHELL
ulimit -n 10000

fix clock drift

WSL2 clock drifts if left open when Windows sleeps. Fix with:

sudo hwclock -s

port-forward for external connections

In powershell, to port-forward:

netsh interface portproxy add v4tov4 listenport=3000 listenaddress=0.0.0.0 connectport=3000 connectaddress=$ipAddress

To release:

netsh interface portproxy delete v4tov4 listenport=3000 listenaddress=0.0.0.0

To show all currently configured:

netsh interface portproxy show all

fixing ubuntu 0x80040326

Ubuntu failing to start, even after reinstall, with:

Error: 0x80040326
Error code: WSL/Service/0x80040326
Press any key to continue...

[process exited with code 4294967295 (0xffffffff)]

Run the following, and then restart:

wsl --update

More