当我不使用 Windows Subsystem for Linux 时它是否会消耗资源(CPU/内存/HD)?

当我不使用 Windows Subsystem for Linux 时它是否会消耗资源(CPU/内存/HD)?

我需要 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

相关内容