增加 Swap 分区来把十年前的旧电脑变废为宝

2021-01-30 17:45:20 +08:00
 Mark24

背景

10 年的 MacBookPro 2010 (4G 内存,2 代 i5,换过 SSD) 还是 MacOSX 时候接口接触不良,开机就卡死。风扇呼呼,非常非常卡。而且 MacOS 已经对它停止支持了。一度想扔掉。然后突发奇想安装了 Ubuntu20.10 ,结果所有毛病都消失了。。。。

原来这就是“计划性报废”。

参数表:
Intel® Core™ i5-2415M CPU @ 2.30GHz × 4 
3.8 GB 
Intel® HD Graphics 3000 (SNB GT2)
SSD:  Sandisk 240G

Ubuntu 20.10

安装 Ubuntu 之后

接口能用了,不再接触不良,拷贝速度 30-40M/s 。一切工作正常,驱动也没问题——硬件足够老了可能。

但是就是有一个问题。电脑的内存太小了 4G,开个 IDE ( Pycharm 、Rubymine )就吃力了,作为生产力差点意思。

Swap 分区的问题

安装系统默认的 Swap 分区是 2G,也就是内存的一半。网上总流传一个 swap 的配置:

多多少少大家都能搜到。其实这个很有问题—— 这个可能是作为服务器来思考的。有的文章甚至提倡直接下掉 swap 分区来减少 swap 降低的速度带来的副作用。

但是多年前的文章怎么能指导今天的情况。我这台老电脑,我试着把电脑 swap 分成 8G (内存的 2 倍)。结果很有趣。粗略狂开了一下,同时运行这些程序

Thunderbird (更新邮件) x1
终端 x2
火狐 13 个 tab
sublime x1 项目
bt 下载 x2
vscodex1 项目
pycharm pro ide x2 项目
ruby mine ide x1 
pdf 文档 x4 本书
wordx3 文档
emacs x1
ppt x1 文档
数据库图形 x1
表格 x1
vlc 播放电影(不卡)
Chromex1  2 个 tab

8G 的 swap 分区才被占据了一半。

依然可以正常运行。CPU 远远不到瓶颈,因为 CPU 跑满顶多是多等一会,一切都不会失去响应。内存才是瓶颈。

侧面印证一些文章里提到的 Linux 在内存被塞满会报错,出现一些异常,系统会变慢。我猜测,其中内存和 swap 分区都满了之后,频繁的 GC(垃圾回收)其实是系统卡的重要原因。

作为桌面 ,即使程序都经过 swap 慢一点也无所谓,庞杂的 app 跑在机器上,频繁的 GC 才是灾难。和跑单一服务的服务器有些不同。内存如果可以,尽量给多,空间换时间。

如此这般作为生产力也可以顶一阵子了。

设置 swap 的方法

可以参考 change_swap_size_ubuntu

我后来 SWAP 设置为 16G 准备起飞。本身就是 SSD,这样省买内存了。非常惊喜。

感兴趣的小伙伴可以把你手里的旧电脑变废为宝。

补充

还有一些文章,提到了多硬盘可以设置 swap 阵列,优先级以来提高性能。

3413 次点击
所在节点    分享发现
28 条回复
AndyAO
2021-01-30 18:18:00 +08:00
让我想到了之前的经历
系统经常出现各种问题,经常卡死,尤其是从睡眠中恢复过来的时候
本来我以为需要重装了
结果清理了
系统分区删除了很多的冗余文件和缓存就可以了
现在想起来也许是因为系统分区被占满之后
无论是睡眠还是做一些内存需求比较大的事情都会出问题
systemcall
2021-01-30 19:11:39 +08:00
4G 内存跑 Linux 本来就还好。要是装 Win10 ltsc 也一样可以跑
SWAP 太大了也没多少意义,浪费 SSD 。Windows 下可以看硬错误,Linux 下不知道要看什么。如果系统很频繁的读写 swap 的话,也不流畅
我手里几台 2G 内存的电脑,有一些还是板载的内存没法换。家里还有 512MB 和 1G 内存的安卓设备,也是好多个。现在还有 4G 内存的电脑买呢,4G 内存确实是可以用的。2G 内存如果优化很好的话也是可以轻度使用的,不少 Chromebook 好像就是 2G 内存
Mark24
2021-01-30 20:19:00 +08:00
@AndyAO 是的,我的观察目前也是这样。

之前我使用比较长时间,内存,swap 近乎满了之后,睡眠恢复经常 wifi 失效。
现在给足了 swap 之后,开盖子 wifi 恢复的速度肉眼可见的加快。

给足 swap,很多以前经常遇到的问题没有了。
liut2016
2021-01-30 20:29:13 +08:00
目前我工作机 Linux 16g 内存+16g 交换,很舒服
1078503
2021-01-30 21:52:04 +08:00
>操作系统:Kubuntu 20.04
>KDE Plasma 版本:5.18.5
>KDE 框架版本:5.68.0
>Qt 版本:5.12.8
>内核版本:5.4.0-65-generic
>操作系统类型:64-位
>处理器:4 × Intel® Core™ i5 CPU M 560 @ 2.67GHz
>内存:7.6 GiB 内存

[我为什么使用 Linux 作为桌面系统]( https://9hz.club/d/18-linux)
1078503
2021-01-30 21:55:05 +08:00
丢人,编辑框不会用……
qinrui
2021-01-30 23:38:52 +08:00
还有一台 2009 年的 mbp‘是不是可以装个 debian ?
LZSZ
2021-01-30 23:57:19 +08:00
处理器 4 核的 还不错
Mark24
2021-01-31 00:04:47 +08:00
@AndyAO 我收回。wifi 断是硬伤。不相关。刚才验证了一下。
Mark24
2021-01-31 00:06:00 +08:00
@qinrui
ubuntu 吧,驱动丰富,省的麻烦。一步到位。
codehz
2021-01-31 01:14:57 +08:00
设置 SWAP 其实只会影响内核对可回收页面的判断(
本来必须是有文件映射的页面才可以被回收,
现在没有文件映射的页面也可以被回收了(当然其他限制还是在的)
而回收策略依然是根据使用情况做预测(具体算法比较复杂)
所以如果不设置 swap,内核就只能在内存压力高的时候把文件映射的页面给回收掉,而这对于终端用户来说卡顿的感觉就很明显了。。。
设置了 swap 之后,内核会更为公平的回收页面,换句话说,更不容易把用户感知明显的页面回收掉(
Mark24
2021-01-31 01:27:43 +08:00
@codehz 是的,体验上使用时间长,从卡卡的到不卡了。偶尔等待。
wwhc
2021-01-31 05:27:19 +08:00
楼主,还有一个更神奇的东西,叫:zram
q9OxQg
2021-01-31 06:16:40 +08:00
@1078503 最近搜集个人博客上瘾,隐约回到本世纪初,宁愿去浏览器看更新频率不高的个人网站,也不想多在 big techs 上多搞。
2yuansvip
2021-01-31 08:19:17 +08:00
@q9OxQg 翻博客能明显感觉到每个人都是有趣的个体
AndyAO
2021-01-31 08:21:42 +08:00
@Mark24
这种情况是经常出现的,因为信号这样的问题测试起来非常的困难
除非特别特别明显或者用心观察很长时间很难知道是变好还是变坏
Ayahuasec
2021-01-31 09:16:39 +08:00
CPU 没吃满但是 swap 占了一半了,这种情况还可以开 zram 减少硬盘交换的吧
Mark24
2021-01-31 10:51:40 +08:00
@wwhc 感谢,我学习下~
nguoidiqua
2021-01-31 11:03:52 +08:00
网上的公式是 N 多年前的情况了,当时 4G 可能都算大内存了,所以是没必要开很多 SWAP,现在嘛,几个网页就能吃完 4G,不可同日而语了,所以有些东西确实没必要太教条了,自己思考探索才知道结果如何。

其实装 ChromeOS 还可以再起飞,只是缺少很多软件。
Mark24
2021-01-31 13:03:12 +08:00
@nguoidiqua 是的,非常赞同。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/749873

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX