首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自动管理交换/内存

自动管理交换/内存
EN

Ask Ubuntu用户
提问于 2021-06-11 13:42:39
回答 2查看 792关注 0票数 2

在填充所有内存和交换我的经验时,最近几年的情况是:

  • Windows和macOS去“哦,让我们为您修复”,然后大概会增加交换空间的大小。打开30个YouTube选项卡会让事情慢一段时间,但是如果我想中止进程,我通常仍然可以使用光标,然后系统的其他部分(不一定是冒犯的应用程序)也会像往常一样响应。
  • Ubuntu (21.04)说:“对不起,你不能在接下来的十到三十分钟内与电脑进行交互”。在相同的硬件和浏览器上,我可以打开30个YouTube选项卡,并观看整个系统的锁定。所有内存和交换空间都用完了,光标不仅速度慢,而且被锁定在适当的位置。我无法与系统的其他部分进行有意义的互动。

不同的是,Ubuntu从来没有解决过这种情况,它的交换大小保持不变,因此每隔5秒钟就会永远锁上一次。直到,也就是说,灾难性的故障发生,火狐消失无迹-这在其他OSes中几乎从来没有发生过。最关键的方面是,我无法与系统的其他部分进行交互。

我不知道,但我得到的印象是,如果根据需求增加掉期规模,这不会是一个问题。这是如何完成的?是否存在更好的内存管理?

测试更新

在完成了注释中所建议的快速测试(不是那么快)之后,我将swapfile的大小翻了一番,我可以得出结论,它在世界上产生了所有的差异。在同一负载期间,系统始终保持响应。我只能得出结论,自适应交换大小将缓解所描述的问题。

代码语言:javascript
复制
$ free -h
              total        used        free      shared  buff/cache   available
Mem:          3.7Gi       3.1Gi       129Mi       374Mi       566Mi       105Mi
Swap:         4.0Gi       3.0Gi       988Mi

$ sysctl vm.swappiness
vm.swappiness = 60

$ swapon -s
Filename                Type        Size    Used    Priority
/swapfile_4G.img                        file        4194300 3180664 20

--关于硬件

的一点注记

Ubuntu的卖点之一是得到持续的支持,增加旧硬件的寿命,其中包括内存不足的机器。这并不是说内存少得离谱,其他OSes可以让它做得很好,只是比平均水平要小。许多这样的机器是不可升级的。

对于大多数用例来说,4 GB RAM工作得很好。在Ubuntu中,在Windows中,在macOS中。然而,在Windows和macOS中,似乎只有当您用完所有分配的交换空间时,才能很好地工作。

简而言之,让Ubuntu正常运行的解决方案成为“购买新硬件”的解决方案--运行它的全部目的--对所有这些机器来说都是毫无意义的。升级硬件超出了这个问题的范围。

Ubuntu标准版本的要求是4GB内存。

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2021-07-15 11:56:32

正如@Terrance Swapspace在评论中提到的那样,它是解决这个问题的一种方法。

代码语言:javascript
复制
apt install swapspace

现在,您所需要的只是一些免费的存储,以便控制您的系统。测试和工作。

票数 0
EN

Ask Ubuntu用户

发布于 2021-06-14 16:31:50

Linux内核是..。交换支持方面的问题。从许多开发人员的角度来看,交换是二等公民。我的意思是,用于弹出和获取页面的算法相当简单,并且在有大量经常使用的页面时可以分解。

一个不错的解决方案可能是使用zswap。这样做是将内存块设置为压缩内存,将页面弹出到其中。为此,编辑内核引导参数以添加zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold。在Ubuntu系统上这样做的最简单方法是将它添加到/etc/default/grub文件中,作为GRUB_CMDLINE_LINUX_DEFAULT键的一部分。这将有效地增加可存储在RAM中的数据量,减少磁盘IO和防止锁定。

最后,您将询问如何动态创建更多的交换空间。Linux完全能够随意添加和删除swapfile,这意味着脚本可以检查交换文件的可用性,并在需要时添加swapfile。但是,如果您经常使用完整的交换空间,那么这一点就没有多大意义。

若要增加交换空间(而不重新分区磁盘),可以使用swapfile。为此,运行sudo dd if=/dev/zero of=/swapfile count=1M bs=1024 status=progress,它将100万个1024字节(即1G字节)块复制到一个文件中。然后,运行sudo chmod 0600 /swapfilesudo mkswap /swapfile来准备用作交换的文件。将其添加到/etc/fstab,使其始终可用,方法是在该文件中追加以下行:/swapfile swap swap defaults 0 0。要完成该过程,请调用sudo swapon -a,这将激活swapfile。

来源:我自己使用swapfiles和zswap,并引用了我的bash_history和Arch作为命令。

票数 2
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/1345236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档