WSL2 高级设置配置选项参数说明

本文记录了 Windows 系统上 WSL2 高级设置选项参数的详细配置说明。

前言

WSL2 可以在 Windows 系统上提供无缝高效的 Linux 环境体验。

但是默认情况下,WSL2 中的 Linux 子系统资源分配(CPU 、内存、网络)可能不满足开发人员的需求。

微软提供了两种 WSL 设置的配置文件类型,其简单区别如表格所示:

配置文件 文件位置 适用范围
.wslconfig Windows 用户目录下 作用于 WSL2 中的全部 Linux 发行版(仅 WSL2 可用
wsl.conf 实际为 Linux 的 /etc/wsl.conf 文件 作用于 WSL 中的单独 Linux 发行版( WSL1 和 WSL2 均可用

根据实际使用场景,本文采用的是 .wslconfig 全局配置的方式。

Windows 版本 : Windows 11 家庭版,22H2

可用配置

WSL2 的全局配置需要使用 .wslconfig 文件。

目前 .wslconfig 文件内容可分为主要配置和实验性配置,这两者分别以 [wsl2][experimental] 作为区块名。

若想 .wslconfig 配置生效,需要把 .wslconfig 文件存放至 Windows 的用户目录下(该文件默认不存在)。

建立配置

  1. 在 Windows 终端执行以下命令打开用户目录
    start %UserProfile%
    
  2. 在 Windows 的用户目录下创建名为 .wslconfig 的文件,然后编辑 .wslconfig 文件的内容即可

注意:
使用 .wslconfig 全局配置需要 Windows 版本大于等于 19041 以及使用 WSL2 运行 Linux 发行版
执行命令 wsl --shutdown 关闭 WSL2 中的发行版后才能使 .wslconfig 配置生效(完全关闭 WSL2 中的 Linux 大约需要 8 秒)

主要配置

  • 以下为 .wslconfig 文件中可用的主要配置(该部分以 [wsl2] 作为区块名)

注意:
带有 * 号的配置仅能在 Windows 11 系统上使用
带有 ** 号的配置仅能在 Windows 11 22H2 及以上版本使用

实验性配置

  • 以下为 .wslconfig 文件中可用的实验性配置(该部分以 [experimental] 作为区块名)

注意:
带有 * 号的配置仅能在 Windows 11 系统上使用
带有 ** 号的配置仅能在 Windows 11 22H2 及以上版本使用

配置示例

本部分展示了 .wslconfig 文件的官方示例和我在使用的个人示例,可以根据示例配置自行修改并应用。

官方示例

  • 以下为微软官方提供的 .wslconfig 文件配置内容示例
    # Settings apply across all Linux distros running on WSL 2
    [wsl2]
    
    # Limits VM memory to use no more than 4 GB, this can be set as whole numbers using GB or MB
    memory=4GB 
    
    # Sets the VM to use two virtual processors
    processors=2
    
    # Specify a custom Linux kernel to use with your installed distros. The default kernel used can be found at https://github.com/microsoft/WSL2-Linux-Kernel
    kernel=C:\\temp\\myCustomKernel
    
    # Sets additional kernel parameters, in this case enabling older Linux base images such as Centos 6
    kernelCommandLine = vsyscall=emulate
    
    # Sets amount of swap storage space to 8GB, default is 25% of available RAM
    swap=8GB
    
    # Sets swapfile path location, default is %USERPROFILE%\AppData\Local\Temp\swap.vhdx
    swapfile=C:\\temp\\wsl-swap.vhdx
    
    # Disable page reporting so WSL retains all allocated memory claimed from Windows and releases none back when free
    pageReporting=false
    
    # Turn on default connection to bind WSL 2 localhost to Windows localhost. Setting is ignored when networkingMode=mirrored
    localhostforwarding=true
    
    # Disables nested virtualization
    nestedVirtualization=false
    
    # Turns on output console showing contents of dmesg when opening a WSL 2 distro for debugging
    debugConsole=true
    
    # Enable experimental features
    [experimental]
    sparseVhd=true
    

个人示例

  • 以下为我个人使用的 .wslconfig 文件配置内容示例
    # document : https://learn.microsoft.com/en-us/windows/wsl/wsl-config#example-wslconfig-file
    
    # Settings apply across all Linux distros running on WSL 2
    [wsl2]
    
    # Limits VM memory to use no more than 2 GB, this can be set as whole numbers using GB or MB
    memory=2GB
    
    # Sets the VM to use two virtual processors
    processors=2
    
    # Sets amount of swap storage space to 4GB, default is 25% of available RAM
    swap=4GB
    
    # Disables nested virtualization
    nestedVirtualization=false
    
    # If the value is mirrored then this turns on mirrored networking mode
    networkingMode=mirrored
    
    # Changes how DNS requests are proxied from WSL to Windows
    dnsTunneling=true
    
    # Enforces WSL to use Windows’ HTTP proxy information
    autoProxy=true
    
    
    # -----------------------------------------------------------------------------------------------------
    # These settings are opt-in previews of experimental features that we aim to make default in the future
    
    
    # Enable experimental features
    [experimental]
    
    # Automatically releases cached memory after detecting idle CPU usage
    autoMemoryReclaim=dropcache
    
    # When this option is set to false, 
    # DNS requests tunneled from Linux will bypass cached names within Windows to always put the requests on the wire
    useWindowsDnsCache=true
    
    # When set to true, 
    # Windows will extract the question from the DNS request and attempt to resolve it, ignoring the unknown records
    bestEffortDnsParsing=true
    

总结

文中的示例仅用于 .wslconfig 配置文件, .wslconfig 配置文件作用于 WSL2 中的所有 Linux 发行版。

若在 .wslconfig 文件中设置 memory=2GB ,则 WSL2 中的所有 Linux 发行版将共用 2GB 内存。

.wslconfig 配置文件需要遵循 INI 语法。

参考链接

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇