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

Windows(10),长时间不关机(十多天)(睡眠或休眠),就会很卡。而重启后,即使 cpu 占用接近 100%,却明显比重启前流畅?

  •  
  •   hrdom · 4 天前 · 2231 次点击

    每天晚上会睡眠或休眠

    任务管理器同样是占用接近 100%的 cpu 。如果长时间用不关机(十几天),就会很卡。而重启后,cpu 占用接近 100%,却很流畅,甚至比重启前关掉所有软件 cpu 没怎么占用(10%)还流畅。(比较明显的表现是,alt+tab 切换不同软件窗口和按 win 键弹出开始菜单,明显慢)

    我猜测的原因是跟内存有关(但是重启前很卡的时候,内存也只占用了大概 75%。重启后占用 50%)?还是什么其它的奇特原因

    23 条回复    2024-06-24 17:25:36 +08:00
    saranz
        1
    saranz  
       4 天前   ❤️ 1
    久了卡应该是常驻的应用被优先安排到了虚拟内存,而真实内存留出来给新开应用使用。
    重启变快,应该是把虚拟内存释放掉,程序重新被真实内存调用。但是久了后还是会被移动到虚拟内存里。
    DefoliationM
        2
    DefoliationM  
       4 天前 via Android
    感觉 Windows Mac 都是,长时间不关就会很卡,但是 Linux 就不会,几个月不关都无所谓。
    w568w
        3
    w568w  
       4 天前   ❤️ 4
    先纠正 1 楼的回答。

    > 久了卡应该是常驻的应用被优先安排到了虚拟内存

    「虚拟内存」是指「用户进程不能访问真实物理内存地址,只能看到分给自己的内存映射」,是操作系统的一种设计。你指的应该是「交换空间」/「页面文件」这种技术。

    在 SSD 上,一般应用(如 QQ 、微信)换入/换出交换空间只需不到 200 毫秒时间,和楼主说的「十几天」的跨度应该对不上。

    > 久了后还是会被移动到虚拟内存里

    操作系统一般不会闲着没事把软件移动到交换空间里,最多在闲时进行内存压缩。但这也不影响性能。

    ----

    然后回答楼主的问题。对系统流畅度造成压力的一般就是 CPU 、内存和 I/O 三大部件。先说结论:最可能出问题的是内存。

    1. CPU:随着运行时间增长,一些设计不良的软件更可能进入一些错误状态(例如某软件每小时发生一次并发访问,而开发者根本没考虑并发问题。随着运行时间增长,程序越来越可能发生死锁或死循环)。然而这样的情况少之又少,一般来说异常的进程会直接占满 CPU ,很容易被察觉。

    楼主说的「占用接近 100% 的 cpu 」「所有软件 cpu 没怎么占用(10%)」,我猜是指看到的瞬时占用。这个数值没多大意义,和卡顿与否无关,需要取一段时间的平均值。可参考 Linux 上的 load 。

    2. 内存:类似的,一些设计不良的软件可能发生内存泄露(微软自己的 explorer.exe 和 dwm.exe 到今天还会偶发内存泄漏问题,更不要说一般开发者了),这是最主要的原因。内存泄漏将持续增加资源占用,最终触发内存交换,拖慢系统速度。

    这里比较重要的指标可能是提交总量,75% 应该是物理内存的实际占用,大量交换可能已经发生了。

    3. I/O:主要是 SSD 、显卡、网卡等。这个就看具体设备的驱动是否有缺陷、是否经过完备的测试了。
    786375312123
        4
    786375312123  
       4 天前
    @DefoliationM macbook m2, ventura, 都不知道多久没关机了,一点都不卡。
    loveumozart
        5
    loveumozart  
       4 天前
    macos 一样的,我的公司的电脑一个周两个周不重启,必卡。32g i7 版 macbookpro 。
    hrdom
        6
    hrdom  
    OP
       4 天前
    这里的很卡,比如说,从 chrome 通过 alt tab 切到 vscode ,要大概两秒。而重启后,这样切换,感激不到延迟,一秒可以切两三次
    zhuawadao
        7
    zhuawadao  
       4 天前
    有同样的困扰,发现,如果电脑温度能降下来,能够减少卡顿程度。当然没有重启有效
    night98
        8
    night98  
       4 天前
    这种情况有可能是软件问题,我最近就发现我电脑上的 steam ,每次都会跳弹窗,然后我就会发现电脑在一段时间之后变得特别慢,原因就是 steam 一直在拉起一个叫 steamwebhelper 的进程,但是一直拉失败了,就会拉起很多相同的进程。你这种情况你要去看下后台。
    DefoliationM
        9
    DefoliationM  
       4 天前 via Android
    @786375312123 我这 Windows server 进程日常内存泄漏,不重启根本降不下去。
    vialon17
        10
    vialon17  
       4 天前
    吐槽:Firefox 也有类似地问题,放的时间长能吃 2g 多内存,,,
    Ja22
        11
    Ja22  
       4 天前
    忘记之前是啥提醒我了,Windows 让我重启电脑,说否则会卡,我猜内存泄漏?
    shinession
        12
    shinession  
       4 天前
    推荐用 ltsc 版, 长时间不重启也没事, server 版就更稳定了, 几年不重启都行
    fangxiaoning
        13
    fangxiaoning  
       4 天前   ❤️ 1
    同样,感觉是有什么句柄泄露,长期不重启就会越来越卡,尤其是切换窗口和打字,肉眼可见地变卡了,必须重启才能解决
    totoro52
        14
    totoro52  
       4 天前   ❤️ 1
    一样,我 21 年就说过这个问题了,有时候电脑一个月没关,非常的卡断,ide 敲几行代码才出提示,重启完就瞬间解决了,就算把所有应用都关掉也不行,我感觉也是内存的问题,因为我关掉后还是很大一部分内存没回收回来,应该是发生了泄露
    nekoneko
        15
    nekoneko  
       4 天前
    我电脑常年不关机, 用起来没啥问题. 我是 11
    ouqihang
        16
    ouqihang  
       4 天前
    电脑开到自动更新重启都不卡,但间隔不会超过 25 天到 30 天,总会有更新强制重启。
    esee
        17
    esee  
       4 天前 via Android
    我是 10 ,一般一个月左右重启一次,平时不关机,出门都是远程桌面回来继续开发。没觉得时间长了会卡,最常碰到的是微信开发者工具长时间不关把内存占满了很卡关掉重新开就好了
    zktz
        18
    zktz  
       4 天前
    分享一下我的经验。如果我的笔记本 windows ,盒盖子休眠,且不插电源一段时候后。就算再插上电源唤醒,也是非常非常非常的卡。原因是 cpu 降频了。就算 cpu 、内存、固态硬盘负载都非常低。但是也非常非常非常的卡,是因为 cpu 降频了。基本上 cpu 徘徊在 1Ghz 左右。这时候只要重启计算机。风扇就会狂转,cpu 上到 3Ghz 以上。

    如果是在家,不合上盖子,一直插着电源,就是时间长了它自己休眠。那么再次唤醒,基本上不会降频。

    所以我觉得是省电策略导致的。
    seanxx
        19
    seanxx  
       4 天前
    m1pro 印象里从来没关过机 不卡
    heliotrope
        20
    heliotrope  
       4 天前
    软件问题 我 Nas 经常半年多才重启(打系统更新的补丁
    winServer 更是部署以后就没重启过
    公司的电脑 装了什么绿盾之类的加密 几天不重启 就卡的不行
    chinaguaiu
        21
    chinaguaiu  
       3 天前
    我这里是因为要用 wsl 开 docker ,10 天左右不关机必卡崩。现在 docker 不用的时候手动关闭、关闭 ws ,谷歌后台之类的也关掉,还是需要每周重启一次才能保证电脑流畅度
    DOLLOR
        22
    DOLLOR  
       3 天前
    @w568w
    就像很多人把硬盘叫做“内存”一样,也有很多人把 pagefile 叫做“虚拟内存”。
    都是外行乱叫,结果把专业名词原本的含义都扭曲了。🐶
    fengYH8080
        23
    fengYH8080  
       3 天前
    这个可以从计算机组成 + 操作系统的知识来分析。
    CPU 只是负责执行指令,而运行时间长短应该不会影响到 CPU 内部 3 级 Cache 的命中率,不过有可能随着时间的堆叠进程或者线程慢慢变多导致 Cache 频繁的置换从而使 Cache 命中率下降。当然也有可能这种情况会导致中断指令频繁。
    然后就是内存,这个是大概率的原因了,刚开机的内存就是一大块,随着运行时长内存碎片化是不可避免的,然后碎片化整理肯定花费时长,不过这点我觉得应该影响不是特别大。
    主要可能是很多软件的设计问题,随着运行时间的增加,内存占用一直增加,就例如我用 webstorm 内存老是用久了内存会增加到它不应该用到那么多内存的量级。多进程争抢内存也会导致很多内存会放在虚拟内存中,结果就是内存命中率下降,操作系统内存置换算法也要时间,就最终会感觉到电脑没有刚开始的流畅。
    总结:内存命中率下降。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5147 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 06:44 · PVG 14:44 · LAX 23:44 · JFK 02:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.