Swapman: 开源的 M1 Macbook 交换分区分析应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
waylybaye
V2EX    分享创造

Swapman: 开源的 M1 Macbook 交换分区分析应用

  •  4
     
  •   waylybaye 2021-02-24 22:22:21 +08:00 6180 次点击
    这是一个创建于 1689 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我昨天也被 M1 SSD 的写入量震惊了,平均每天要写 750G ! 看到这个数据后我就特别想知道我日常使用中,到底是哪些应用在被疯狂的 swap,以此来改善下工作习惯。

    由于没找到合适的分析工具,就花了俩小时自己动手写了一个。 https://github.com/waylybaye/Swapman

    screenshot

    统计了后才发现基本是浏览器和开发工具特别是 Xcode 一直在被切来切去。就改了下自己的使用习惯:不用 Chrome,代码写完就关掉开发工具,现在好了很多。

    36 条回复    2022-06-15 17:43:41 +08:00
    QingStone
        1
    QingStone  
       2021-02-24 22:45:14 +08:00 via iPhone   1
    硬核大佬!
    shoaly
        2
    shoaly  
       2021-02-24 22:52:18 +08:00   11
    不用 chrome 关掉 xcode , 这 mac 用起来太卑微了
    justin2018
        3
    justin2018  
       2021-02-24 22:52:51 +08:00   1
    硬核大佬!
    ddllzz
        4
    ddllzz  
       2021-02-24 23:11:04 +08:00 via Android   1
    八爷牛逼
    DingSoung
        5
    DingSoung  
       2021-02-24 23:18:57 +08:00 via iPhone
    不应 Xcode 怎么写代码 不是 iOS 开发吗
    LadyChunsKite
        6
    LadyChunsKite  
       2021-02-24 23:26:11 +08:00 via iPhone
    这样用的不憋屈吗?小心翼翼的,生怕它不高,跟个舔狗似的。
    我一个用户居然要去揣摩工具的行为?
    bkmi
        7
    bkmi  
       2021-02-24 23:50:21 +08:00 via Android
    750G 都是 Swap 产生的读写吗
    ShuoHui
        8
    ShuoHui  
       2021-02-24 23:51:27 +08:00 via iPhone   1
    八爷 6快去继续写赚钱项目啊哈哈哈哈
    waylybaye
        9
    waylybaye  
    OP
       2021-02-25 00:12:38 +08:00
    > @shoaly 不用 chrome 关掉 xcode , 这 mac 用起来太卑微了
    没办法,肯定没法像 32G 内存那样用,不能开太多进程。

    > @DingSoung 不应 Xcode 怎么写代码 不是 iOS 开发吗
    写完就关掉 Xcode 和模拟器,下次用时再打开。
    waylybaye
        10
    waylybaye  
    OP
       2021-02-25 00:16:15 +08:00
    @LadyChunsKite 买 M1 就做好当小白鼠的准备了,性能提升和其它方面提升也是显而易见的。

    @bkmi 不一定,但至少 90% 是 swap 产生的。

    @ShuoHui 不搞小项目了,专心赚钱(
    jimliang
        11
    jimliang  
       2021-02-25 00:17:59 +08:00
    好东西,mac 的内存管理太坑爹了,16g 内存只用了 8g 就开始频繁 swap 了。
    shoaly
        12
    shoaly  
       2021-02-25 00:25:37 +08:00
    @waylybaye 恩 , 我理解安心用, 等下个版本修复咯, 大概率还是系统 bug 造成的
    noqwerty
        13
    noqwerty  
       2021-02-25 00:30:17 +08:00 via Android   1
    每次苹果相关的帖子下面都有阴阳怪气的,人家乐意这么用,卑微也写出来熊猫吃短信了,你不憋屈写出来啥了?
    uhian
        14
    uhian  
       2021-02-25 00:40:10 +08:00
    @waylybaye 点了 1000 次 star,能换 ServerCat 高级版打折么?
    autoxbc
        15
    autoxbc  
       2021-02-25 01:33:29 +08:00
    这个事的威力还得等一年后乞丐版出二手时才能看出来
    hewigovens
        16
    hewigovens  
       2021-02-25 05:05:30 +08:00 via iPhone
    nailuoGG
        17
    nailuoGG  
       2021-02-25 08:32:00 +08:00
    大头主要是 Chrome 和 WebStorm 。关掉不用的标签页+调低 WebStorm 的内存后,swap 少了很多
    spacedebris
        18
    spacedebris  
       2021-02-25 08:48:51 +08:00
    我的理解 swap out 才是写入 ssd,swap in 应该是从硬盘 swap 分区中读取写入 ram 吧?
    Nitroethane
        19
    Nitroethane  
       2021-02-25 09:02:51 +08:00 via iPhone
    @spacedebris 不管是读 ssd 还是写 ssd 有什么区别么,都是在损耗硬盘呢。

    我怎么觉得这使用习惯像是在掩耳盗铃。除非精确控制让 Xcode 和 Chrome,让它们不要使用过多内存以触发使用 swap,否则每一次关闭应用必会触发脏页的回写以及 swap file 的释放,每次打开应用的时候还要从硬盘重新加载一次。
    fuwu1245
        20
    fuwu1245  
       2021-02-25 09:10:33 +08:00
    需要用 Root 用户运行么?
    spacedebris
        21
    spacedebris  
       2021-02-25 09:12:52 +08:00
    @Nitroethane ssd 读取不影响寿命
    waylybaye
        22
    waylybaye  
    OP
       2021-02-25 12:17:46 +08:00
    @uhian 哈哈,能点 1000 个 star 的话我直接送你几个

    @nailuoGG 装了一个自动关闭长时间不用的标签页的插件也能好很多
    waylybaye
        23
    waylybaye  
    OP
       2021-02-25 12:19:46 +08:00
    @spacedebris swap out 应该是只有 kernel_task 能做,它发现哪个进程暂时不太重要就会挪到 swap 里,进程再次激活时如果有 swap in 就说明被 swap 了。

    @fuwu1245 需要 root
    Yien
        24
    Yien  
       2021-02-25 12:21:38 +08:00 via iPhone
    膜拜大佬
    spacedebris
        25
    spacedebris  
       2021-02-25 13:26:44 +08:00
    @waylybaye 那 swap in 高也不一定是写入多,也有可能是对 swap 的利用效率高了
    loading
        26
    loading  
       2021-02-25 13:32:18 +08:00 via Android
    何必限制自己使用呢?
    ryanbuu
        27
    ryanbuu  
       2021-02-25 13:39:19 +08:00
    熊猫吃短信就是您写的呀!!!
    alexzuo
        28
    alexzuo  
       2021-02-25 14:36:33 +08:00
    主要是用 clion 和 pycharm,浏览器用 Safari,确实硬盘写入没那么多
    byte10
        29
    byte10  
       2021-02-25 16:07:44 +08:00
    @shoaly 可以使用火狐,火狐很好用,国内也可以有账号同步,谷歌的不行。要 FQ.
    maemolee
        30
    maemolee  
       2021-02-25 16:16:44 +08:00
    intel 核心的 mac 用户下载试了一下发现没法启动监控……提示 fs_usage must be run as root
    systemcall
        31
    systemcall  
       2021-02-25 16:33:01 +08:00
    感觉还不如让它用 swap 用的更频繁,在保修期内就坏掉。这样就可以无限续杯,需要的就只是一个提醒用户 SSD 快写废了的程序
    autoxbc
        32
    autoxbc  
       2021-02-25 22:43:34 +08:00
    @systemcall #31 SSD 写废肯定是有限保修的例外条款,这是业界共识
    systemcall
        33
    systemcall  
       2021-02-26 01:30:04 +08:00
    @autoxbc #32
    没看到以整机出售的电脑里面提到这种例外的
    再说了,以前用机械硬盘的时候根本没有写入量的问题,读和写对硬盘的伤害是类似的( SMR 除外,但是当时民用的产品也没有 SMR )。三包法又没有跟着改
    而且 SSD 写废的电脑并不少,很多卖出去的电脑用者白片或者黑片或者 n 手拆机,写入量一上去 FTL 挂掉了或者是闪存报废的多得是,之前看到的数据,有些整机用的 SSD 返修率达到了 10 几%。开了这个口子的话,数量上占据绝对优势的垃圾 SSD 肯定会肆无忌惮的装在大部分的电脑上
    只有单独出售的 SSD 才有这种限制。甚至你买个 U 盘写废了也不算违背了什么条款,厂家也确实需要保修,当然这种东西可能会限制不能在 7x24 的情况下使用,不过这又是后话了
    Tink
        34
    Tink  
    PRO
       2021-02-27 23:19:31 +08:00
    @waylybaye #23 只能在终端内通过 sudo 来启动吗?还有什么办法木有
    najunuoyan
        35
    najunuoyan  
       2022-06-09 18:08:23 +08:00
    今天刚注意到非 m1 的 32Gmac 写入量也超大,准备用楼主的工具监控几天看看到底哪个是大户,到时候给大家汇报一下
    najunuoyan
        36
    najunuoyan  
       2022-06-15 17:43:41 +08:00
    看了一下,chrome,wps 和公司内部的 IM 软件都比较大,现在已经把 swap 关闭了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1012 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 18:36 PVG 02:36 LAX 11:36 JFK 14:36
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86