![当我不使用 Windows Subsystem for Linux 时它是否会消耗资源(CPU/内存/HD)?](https://linux22.com/image/1554644/%E5%BD%93%E6%88%91%E4%B8%8D%E4%BD%BF%E7%94%A8%20Windows%20Subsystem%20for%20Linux%20%E6%97%B6%E5%AE%83%E6%98%AF%E5%90%A6%E4%BC%9A%E6%B6%88%E8%80%97%E8%B5%84%E6%BA%90%EF%BC%88CPU%2F%E5%86%85%E5%AD%98%2FHD%EF%BC%89%EF%BC%9F.png)
我需要 Linux 工具来简化我作为开发人员的生活,并轻松连接到远程 Linux 服务器。我想安装适用于 Linux 的 Windows 子系统(带有 Ubuntu 发行版),但我的笔记本电脑已经无法应付当前的应用程序。我的系统:
操作系统:Windows 10 Pro x
版本:9200 制造商:HP 型号:HP EliteBook Folio 1040 G3 总内存:System.Windows.Forms.Label,文本:8072 MB 处理器:Intel Core i7-6600U @ 2.60 Ghz(2 核,4 个逻辑处理器)
我的问题是,我在后台运行了太多东西(由我的笔记本电脑的管理员安装),即使只使用:
- Sublime Text
- Chrome(4 个标签页,而不是 40 个)
- 松弛
- Skype 商务版
- 外表
我的 CPU 占用率已经是 18%,内存占用率已经是 86%。
问题:如果我按照此处的详细说明安装适用于 Linux 的 Windows 子系统https://docs.microsoft.com/en-us/windows/wsl/install-win10 即使我不使用它,它也会消耗更多资源吗?还是只有当我打开 bash shell 时它才会消耗资源?
答案1
这取决于您使用的 WSL 版本:
- 在 WSL1 中,Linux 应用程序与其他 Windows 应用程序一起运行,只有在运行 Linux 应用程序时才会使用内存和 CPU。
- 在 WSL2 中,应用程序在轻量级虚拟机上运行,为虚拟机分配一定量的内存和 CPU
WSL1
记忆:如果您没有运行 Linux 程序,WSL 将不会使用任何内存或启动任何进程。
- 首次启动 Linux 窗口时,
init
会启动一个或多个进程。在我的 Windows 10 中,Ubuntu 18.04 占用 0.1MB 的 RAM,通常占用 0% 的 CPU。 - 控制台启动了多个进程:一些控制台 Windows 进程、一个 WSL 后台主机、一些 Linux 启动器。在我的测试中,所有这些进程占用了 13.3MB 的 RAM。
- 每次运行linux程序都会占用相应的内存和CPU百分比。
- 关闭所有控制台和 Linux 进程后,所有这些进程都会被终止。
磁盘空间:WSL 占用的空间取决于您在计算机上安装的 Linux 发行版。目前,可以安装多个发行版:例如 Ubuntu 20、OpenSuse 和 Kali Linux。事实上,你可以创建你自己的发行版。
当您从 Windows 应用商店安装 Linux 发行版时,会安装 Linux 启动器。首次运行该程序时,它会下载发行版的压缩文件并解压该文件。
- WSL 占用的磁盘空间取决于您使用的 Linux 发行版。
- 通常情况下,压缩文件不会被删除。然后,您必须考虑压缩文件和分发文件系统的大小。
考虑您可以从 Microsoft 获得的 Ubuntu 发行版。
- Ubuntu 14:
14.04.5.3-server-cloudimg-amd64-root.tar.gz
压缩文件占用182MB,解压后约255MB。 - Ubuntu 16:
16.04.2-server-cloudimg-amd64-root.tar.gz
文件占用226MB,解压后约672MB。
您可以从以下位置检查其他发行版的压缩文件LxRunOffline 维基。
WSL2
记忆:通常情况下,WSL2 会占用 Windows 总内存的 50% 或 8GB(以较小者为准)(在 Windows 20175 版本之前,会占用总内存的 80%)。但是,你可以.wslconfig
配置文件中分配的内存限制。
%UserProfile%\.wslconfig
例如,您可以使用以下命令限制内存和处理器:
[wsl2]
memory=4GB # Limits VM memory in WSL 2 to 4 GB
processors=2 # Makes the WSL 2 VM use two virtual processors
磁盘空间:通常,在安装 WSL2 后,你的虚拟机使用了 1.92 GB。
- 您可以在 Windows 中检查磁盘占用情况应用程序和功能在 WSL2 项目下。
- 您可以使用 Linux 中的命令来确定磁盘使用情况。例如,您可以运行
ncdu --exclude /mnt
来检查 Linux 文件系统使用的空间。
答案2
我对其他答案“Linux 发行版应用程序未运行,未使用任何资源”没有异议,但是,如果您在 WSL Linux 发行版应用程序中运行持久进程,则即使 Linux 应用程序关闭,该进程仍将继续。例如,我在 W10 x64 pro 1903 上运行了 WSL ubuntu 18.04。我安装了完整的 lamp 堆栈,例如 apache2、mysql 等,使用 WSL ubuntu 运行 wordpress 和 drupal 网站。sudo service apache2 start 运行该服务,即使 wsl ubuntu 应用程序关闭,它也会继续运行。所以回答最初的问题“WSL Linux 发行版应用程序可以在应用程序关闭时继续运行进程并消耗资源”
答案3
Linux 的文件缓存已用尽内存。您可以使用命令buff/cache
部分进行检查free
。要删除缓存并释放 RAM,请执行echo 3 | sudo tee /proc/sys/vm/drop_caches
。
如果你发现这样做太频繁,你可以限制内存由 WSL 使用,通过设置
[wsl2]
memory=512MB
在%userprofile%/.wslconfig
。