适用于 Linux 的 Windows 子系统在我不使用时是否会消耗资源(CPU/内存/HD)?

Del*_*aIV 11 memory cpu windows-10 windows-subsystem-for-linux

我需要 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 逻辑处理器)

我的问题是我在后台运行了很多东西(由我的笔记本电脑的管理员安装),即使只有:

  • 崇高的文字
  • Chrome(4 个标签,而不是 40 个)
  • 松弛
  • Skype 商务版
  • 外表

我已经处于 18% 的 CPU 占用和 86% 的内存占用。

问题:如果我按照此处的详细说明安装适用于 Linux 的 Windows 子系统https://docs.microsoft.com/en-us/windows/wsl/install-win10 ,即使我不使用它,它是否会消耗更多资源?或者它只会在我打开 bash shell 时消耗它们?

Jai*_*ime 16

这取决于您使用的 WSL 版本:

  • 在 WSL1 中, linux 应用程序与其他 windows 应用程序一起运行,内存和 CPU 仅在您运行 linux 应用程序时使用。
  • 在 WSL2 中,应用程序在轻量级虚拟机上运行,​​有一定数量的内存和 CPU 分配给虚拟机

WSL1

内存:如果您没有运行 Linux 程序,WSL 不会使用任何内存或启动任何进程。

  • 第一次启动 linux 窗口时,init会启动一个或多个进程。在我的装有 Ubuntu 18.04 的 Windows 10 中,它占用 0.1MB 的 RAM,通常占用 0% 的 CPU。
  • 控制台启动多个进程:一些控制台窗口进程、一个 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 wiki查看其他发行版压缩文件。


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
Run Code Online (Sandbox Code Playgroud)

磁盘空间:通常,安装 WSL2 后,您的虚拟机使用 1.92 GB

  • 您可以在 WSL2 项下的应用程序和功能中查看 Windows 中的磁盘消耗。
  • 您可以在 linux 中使用命令来确定磁盘使用情况。例如,您可以运行ncdu --exclude /mnt以检查 linux 文件系统使用的空间。


小智 5

我对其他答案没有问题,“linux 发行版应用程序未运行,没有使用资源”,但是,如果您在 WSL linux 发行版应用程序中运行持久进程,即使 linux 应用程序关闭,该进程也会继续。例如,我在 W10 x64 pro 1903 上运行 WSL ubuntu 18.04。我已经安装了完整的灯堆栈,例如 apache2、mysql 等,使用 WSL ubuntu 运行 wordpress 和 drupal 网站。sudo service apache2 start 运行该服务,即使 wsl ubuntu 应用程序关闭,它也会继续运行。所以要回答最初的问题“即使应用程序关闭,WSL linux 发行版应用程序也可以继续运行进程并消耗资源”