V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Mark24
V2EX  ›  分享发现

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

  •  
  •   Mark24 · 2021-01-30 17:45:20 +08:00 · 3565 次点击
    这是一个创建于 1387 天前的主题,其中的信息可能已经有所发展或是发生改变。

    背景

    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 的配置:

    • 如果内存很小(<4GB),设为内存大小

    • 如果内存很大(>=4GB),设置为内存的一半

    多多少少大家都能搜到。其实这个很有问题—— 这个可能是作为服务器来思考的。有的文章甚至提倡直接下掉 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
    

    2021-01-30 15-48-49 屏幕截图.png

    2021-01-30 15-42-45 屏幕截图.png

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

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

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

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

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

    设置 swap 的方法

    可以参考 change_swap_size_ubuntu

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

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

    补充

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

    第 1 条附言  ·  2021-02-01 23:59:47 +08:00
    补充:

    登陆的时候,可以选择 Wayland 而非 X11 。 这样图像的速度明显提升。内存的使用也减少了。
    第 2 条附言  ·  2021-02-06 16:02:03 +08:00
    后续内容,系统整理并且更新在 https://www.v2ex.com/t/751846#reply0
    28 条回复    2021-02-06 16:04:21 +08:00
    AndyAO
        1
    AndyAO  
       2021-01-30 18:18:00 +08:00
    让我想到了之前的经历
    系统经常出现各种问题,经常卡死,尤其是从睡眠中恢复过来的时候
    本来我以为需要重装了
    结果清理了
    系统分区删除了很多的冗余文件和缓存就可以了
    现在想起来也许是因为系统分区被占满之后
    无论是睡眠还是做一些内存需求比较大的事情都会出问题
    systemcall
        2
    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
        3
    Mark24  
    OP
       2021-01-30 20:19:00 +08:00
    @AndyAO 是的,我的观察目前也是这样。

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

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

    其实装 ChromeOS 还可以再起飞,只是缺少很多软件。
    Mark24
        20
    Mark24  
    OP
       2021-01-31 13:03:12 +08:00
    @nguoidiqua 是的,非常赞同。
    q9OxQg
        21
    q9OxQg  
       2021-01-31 14:08:48 +08:00 via Android
    @2yuansvip 对的。人的有趣程度可以不同,博客也是,但是人都不同,这本身就很有趣,也是生活本态。这就是我现在喜欢用浏览器看气氛不差的 BBS (貌似很过气的东西)多过看 app 的投喂,甚至微信公众号也不够好,他们的问题是追热点,追流量,被审查和自我审查。
    lucifer9
        22
    lucifer9  
       2021-02-01 15:08:47 +08:00
    Mark24
        23
    Mark24  
    OP
       2021-02-01 23:59:32 +08:00
    补充:

    登陆的时候,可以选择 Wayland 而非 X11 。 这样图像的速度明显提升。内存的使用也减少了。
    wangyongbo
        24
    wangyongbo  
       2021-02-05 14:27:37 +08:00
    感谢楼主,我的笔记本电脑 ubuntu 18.04 ,8G 物理内存, 用一段时间就会卡死,需要重启。 我把 swap 分区增加到了 8G, 果然好了。
    Mark24
        25
    Mark24  
    OP
       2021-02-06 10:44:24 +08:00
    @wangyongbo :D 哈哈

    确实是有效。
    Mark24
        26
    Mark24  
    OP
       2021-02-06 10:44:46 +08:00
    # wayland 可以尝试,最后还需要 Xorg

    wayland 内存确实是会节省一点,但是软件的兼容性不太好。而且在最重要的输入法会出现连击的 BUG,可以在系统设置--辅助里面,关闭掉连按按钮。但是不够好。

    wayland 还有待成熟。

    录屏工具 obs-studio 在录制屏幕的时候,wayland 下不工作,总是黑屏,因为 wayland 的 composite 缺乏一个输出图像的 api …… 总之吧,还缺失很多的细节。

    wayland 的开发人员很少,obs 这个 bug 上 wayland 的解决也不够积极。这是 2018 年提出的问题,到现在也没解决。

    看过游戏性能,xorg 和 wayland 差不多。

    对稳定性有要求的伙伴,还是建议使用 xorg,日常使用他们在表现上号无差别。 虽然在原理上 wayland 应该更胜一筹,但是需要时间沉淀(已经快 10 年了)。
    Mark24
        27
    Mark24  
    OP
       2021-02-06 10:45:22 +08:00
    # 关于主板自带 wifi Broadcom

    Broadcom 的无线网卡是很多主板上的选择,他虽然在 Ubuntu 上有闭源驱动,可是表现不尽人意。

    wifi 总是工作一段时间断掉,总让人有一种 Linux 很不稳定的感觉。

    由于你的任何工作都以来网络所以如果 wifi 频繁的断掉,或者只要休眠,合盖子就会挂掉就很不爽。但是这就是现状。

    使用一个月下来,目前他真的是工作状态非常随机。我经常重启是因为丢失 wifi 信号。

    尝试解决方案:

    1.把 wifi 芯片的节能模式设置为 off,永远不断开就可以工作。

    但是这需要芯片支持。结果不行。


    # 小米随身 wifi

    整理自己东西的时候,发现了 2016 年买的小米 wifi 。那时候以为 Linux 能用,结果在 windows 下还需要安装小米的一个驱动软件。

    刚开始想找找驱动,自己编译安装,网上大多数的都是针对 Ubuntu 某个版本的驱动,并且早已实效。

    但是很有趣的是发现:

    小米随身 wifi, 小度 wifi,360 随身 wifi,他们的方案都一样,都是基于 MTK7601U 这款芯片,对是联发科的。

    最好玩的事,当我还在找 驱动的时候,发现 ubuntu 上多出了一个 wifi 。

    顺这个思路找,原来有外国网友提交了补丁。现在 MTK7601U 这个驱动加入到内核里面了 —— 这玩意变成免驱的了。


    # 小米随身 wifi (MTK7601U )

    经过大概四五天的使用,不论是一天开机,隔夜开机,休眠,合盖子。wifi 工作都非常好,唤醒速度非常快,并且热插拔工作。

    wifi 的问题莫名其妙解决了。当 wifi 的问题被解决后,系统的直观感受就是稳定多了,没那么多莫名其妙的信号突然丢失,网络突然减速。
    Mark24
        28
    Mark24  
    OP
       2021-02-06 16:04:21 +08:00
    后续的内容,系统整理更新在

    https://www.v2ex.com/t/751846#reply0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5582 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 08:50 · PVG 16:50 · LAX 00:50 · JFK 03:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.