【VORON/klipper】ADXL345加速度计——安装numpy包失败,Linux的RAM不足,激活swap

为了缩减成本,使用了RAM较小的芯片,导致安装numpy包时失败。
通过激活swap功能解决。

RAM

为了正常工作,计算机系统需要有RAM。而且越多越好。这个内存用来加载PC正常运行所需的所有程序和资源。
首先,现代操作系统(Windows 10、Ubuntu、macOS)至少需要2GB才能正常工作。我们使用的程序越多,需要的内存就越多。但是,如果我们在使用Linux时耗尽内存,我们可以如何解决呢?
一种是更换更大的RAM,但是很麻烦,且要花费额外的金钱,或者我们可以使用一种被称为虚拟内存的技术。

虚拟内存swap

在Linux系统中,它被称为“swap”,作为一个特定的硬盘空间,如果必要的话,可以用作RAM。通过这种方式,如果我们的计算机用完了空闲RAM内存,数据就会从它移动到硬盘,释放它的空间,如果以后需要,就从该硬盘访问数据。

在Windows中,Swap是我们所知道的“页面文件”或虚拟内存。在Windows中,它一直是一个文件(pagefile.sys),而在Linux中,直到最近,我们必须有一个专门的分区(格式化并挂载为交换),我们想要为此目的使用的容量。最现代的发行版已经使用了一个类似于Windows的文件来完成这项任务。

swap的优缺点

和所有东西一样,这个功能也有它自己的优点和缺点。在主要的优点中,我们可以强调它是一个快速和廉价的RAM内存问题的解决方案。特别是当它们是零星的问题时。此外,交换需要能够使用一些Linux特性,例如使计算机休眠。此外,在这种情况下,我们将需要比我们在PC中拥有的总RAM多几个gigs的Swap。有8GB的Swap和有8GB的RAM是不一样的。交换比RAM慢得多,并且从硬盘驱动器发送和检索信息需要时间,因此我们会注意到性能的显著损失。如果我们曾经诉诸于这是没有问题的,但如果我们有很少的RAM,它是更好的物理扩展,而不是依赖于Swap。此外,如果您有一个SSD,从长远来看,使用这种交换可能会损坏它,因为它需要大量的写周期。而且,Swap对Linux来说没有RAM那么重要。这意味着它将始终处于后台,在某些情况下,很可能某些程序,甚至整个操作系统,都会失败。

这个问题的答案很复杂。这取决于我们电脑的硬件,以及我们用它来做什么。例如,如果我们有4 GB的RAM,我们应该准备一些交换的GB,以便在需要时,它们是可用的。

如果我们使用消耗大量内存的应用程序,如Blender、4K视频编辑器或在GIMP中编辑非常大的照片,那么让这个空间可用也是明智的,尽管我们可能不需要它。

但是,如果我们有一台中等RAM(例如16GB)的计算机,我们既不使用休眠也不使用之前的程序,那么Swap就没有必要了,因为我们的Linux永远不会使用所有这些内存。

简而言之,Swap技术可以增大可用内存,在我们本身RAM不足以被消耗时进行虚拟代替。例如,klipper安装numpy包时,如果我们的树莓派本身RAM太小,那么就需要使用到Swap功能。
缺点就是会降低性能,且频繁交换会损坏SSD。

swap阈值

默认情况下,Ubuntu(和许多Linux发行版)有一个默认的swappiness设置为60。这意味着Swap不会被使用,直到60%的RAM被使用。交换内存从这个阈值开始被使用。

我们可以通过使用具有根权限的编辑器编辑以下文件来修改这个值:

cat /proc/sys/vm/swappiness

我们可以通过修改所需阈值的默认值来更改所需的阈值。例如,我们可以设置一个值为“90”,如果我们只希望在使用了90%的RAM时使用这个值。甚至更多。这将更好地利用计算机的物理内存,进而转化为更好的性能。

如果我们不想修改这个值,我们也可以用下面的指令临时更改swap,尽管我们必须记住,在重新启动后,它将返回默认的swappiness值。

sudo sysctl vm.swappiness=10

我们必须配置的最优值取决于每一个。如果我们有足够的内存,越高越好。但是,如果我们希望小心地避免耗尽内存,则默认值还不错。

Linux下激活Swap

有两种不同的方式来激活Swap的使用,这取决于我们使用的类型(分区或文件)。我们可以检查我们的Linux是否有Swap,以及是什么类型的,在终端中执行以下命令:

sudo swapon --show

有了它,我们将能够看到名称,或挂载点,类型和大小。

在这种情况下,我们使用典型的分区形式,那么我们安装Ubuntu时唯一要做的就是创建一个分区,我们想要的大小(建议是内存的1.5倍)格式化为Linux-SWAP。此外,我们还必须为它分配Swap挂载点,以便操作系统准备该分区以将其用作交换。

如果我们在安装操作系统的过程中这样做,那么我们就不需要做其他任何事情。否则,如果我们想稍后添加它,我们必须在发行版的fstab中指定这个挂载点,以便它在启动时自动启动。

如果你想启用“Swap through a file”,我们必须执行以下命令:

创建交换文件(选择大小2G作为我们想要给它的值):

sudo fallocate -l 2G /swapfile

接下来,我们给它权限,只有根用户可以用以下方式写入该文件:

sudo chmod 600 /swapfile

我们给这个文件一个结构来作为交换文件:

sudo mkswap /swapfile

最后,我们用以下方法激活它:

sudo swapon /swapfile

默认情况下,要在发行版的开始加载这个文件,我们必须在fstab中添加它的指令。这个语句应该像多了一个挂载点,如下所示:

/swapfile swap swap defaults 0 0

这是准备好了。我们重启Linux,可以看到新的Swap分区是如何工作的。如果需要,可以再次使用“sudo swapon -show”命令来检查是否确实使用了文件交换而不是分区。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值