V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
vh2h
V2EX  ›  问与答

紧急求助:如何让某个程序的物理内存强制写入虚拟内存

  •  
  •   vh2h · 2015-11-11 10:23:03 +08:00 · 4181 次点击
    这是一个创建于 3278 天前的主题,其中的信息可能已经有所发展或是发生改变。
    电脑正在运行 autodesk 公司的 navisworks 软件,可能大家都没听说过,就是相当于一个制作动画的软件。因为做了一个比较大的动画,然后用之进行渲染然后输出成视频,因为它是一帧一帧的渲染的,所以随着渲染进程的增加,他占用的内存以非常缓慢的速度逐渐增加,已经渲染了两天两夜了,该进程的内存增加到了 15.16G (电脑配的 16g 内存),已经完成 96%了,然后就上不去了。我看了下任务管理器中的提交大小,是 15.93G ,也就是说它基本上没占用多少虚拟内存啊!所有能关的程序都已经关了,所以想让这么大的空间强制转移到我的虚拟内存就是我的 ssd 上,以空出物理内存让程序继续运行,求解决方法,先谢谢各位了!
    第 1 条附言  ·  2015-11-11 12:42:46 +08:00
    就是一直保持这种状态很久很久了,而且进度一直是 80%,不会发图片,发个 dropbox 链接。

    https://www.dropbox.com/s/k9lpgj7tn8j21zn/QQ%E6%88%AA%E5%9B%BE20151111122924.png?dl=0
    28 条回复    2015-11-11 21:27:29 +08:00
    Andiry
        1
    Andiry  
       2015-11-11 10:43:09 +08:00 via Android   ❤️ 1
    操作系统自动会写入 swap ,不用做什么
    vh2h
        2
    vh2h  
    OP
       2015-11-11 10:47:47 +08:00
    @Andiry 谢谢回复,但是通过观察任务管理器进程选项卡中的提交大小,操作系统没有自动写入
    vh2h
        3
    vh2h  
    OP
       2015-11-11 10:49:55 +08:00
    或者说有没有什么好点儿的软件强制将物理内存写入虚拟内存?谢谢
    em70
        4
    em70  
       2015-11-11 10:56:11 +08:00   ❤️ 1
    虚拟内存开了么,设置了多大? 内存不够自动会用虚拟内存的,不用你操心啊
    em70
        5
    em70  
       2015-11-11 10:59:38 +08:00   ❤️ 1
    另外可以考虑去阿里云买按量收费的 16 核 64G 内存的云主机来渲染,一个小时可能就几元钱
    tabris17
        6
    tabris17  
       2015-11-11 11:01:15 +08:00   ❤️ 1
    把虚拟内存设置大一点,操作系统会自己干这事儿
    vh2h
        7
    vh2h  
    OP
       2015-11-11 11:03:29 +08:00
    当然开了,新装的电脑, 16g , win7 ,没有使用任何优化软件,使用的默认的设置。我知道一般来说操作系统会自动调整的,但这个鬼软件就一直增加,增加了两天就到了 96%了,而且这个软件还没有这么占用虚拟内存。
    vh2h
        8
    vh2h  
    OP
       2015-11-11 11:06:37 +08:00
    @em70 因为急着要交,渲染了 96%了,快完了又出了乱子
    GPU
        9
    GPU  
       2015-11-11 11:09:50 +08:00   ❤️ 1
    馬上開台云 32 核搞吧。
    ffffwh
        10
    ffffwh  
       2015-11-11 11:11:04 +08:00   ❤️ 1
    你搜下什么方法可以强制不让程序 swap ,可能这个软件这么设过。

    然后看看怎么样取消这种设定。
    GPU
        11
    GPU  
       2015-11-11 11:14:26 +08:00
    我現在用的電腦 16 核 24G 。但是 11 點 30 分就要下班吃飯了 。下班要關電腦
    vh2h
        12
    vh2h  
    OP
       2015-11-11 11:14:34 +08:00
    @ffffwh 谢谢,请问那些内存优化软件能不能这样做,比如一键优化的,求推荐
    em70
        13
    em70  
       2015-11-11 11:17:48 +08:00   ❤️ 1
    @vh2h 还没提示内存不足,工作正常,提示再说吧
    ryd994
        14
    ryd994  
       2015-11-11 11:46:52 +08:00 via Android   ❤️ 1
    物理内存这么快,操作系统当然是能不 swap 就不 swap 啊。不到占满打死都不 swap 啊(不过实际上为了防止内核自己 oom ,会根据 swappiness 有一些调整)
    为什么你要强制 swap 呢?内存闲着有什么用?
    seers
        15
    seers  
       2015-11-11 12:18:48 +08:00   ❤️ 1
    难道不是赶快借个内存应急先吗
    vh2h
        16
    vh2h  
    OP
       2015-11-11 12:26:26 +08:00
    @seers 因为现在我不想让程序中断,否则就要重来了
    vh2h
        17
    vh2h  
    OP
       2015-11-11 12:41:22 +08:00
    @ryd994 道理我都懂,而且也没有让内存闲着,就一直这样很久了,而且进度一直保持在 96%
    不知道怎么发图片,直接丢到 dropbox 里面去了
    https://www.dropbox.com/s/k9lpgj7tn8j21zn/QQ%E6%88%AA%E5%9B%BE20151111122924.png?dl=0
    vh2h
        18
    vh2h  
    OP
       2015-11-11 12:44:42 +08:00
    @em70 谢谢你的答复,但是进度一直没有动很久了
    hx1997
        19
    hx1997  
       2015-11-11 13:02:34 +08:00 via Android   ❤️ 1
    我记得有个 API 的,跟 WorkingSet 有关。
    Lanceliel
        20
    Lanceliel  
       2015-11-11 13:02:38 +08:00 via Android   ❤️ 1
    楼主现在能不能关闭自动保存?
    另外大概是在 Options>Models>Performance 里面应该可以设置内存使用限制,默认 AUTO ,改到 8G 试试。这应该是第一次开软件的时候设置的……现在改这些是不是需要重启软件才能生效我就不清楚了 orz
    hx1997
        21
    hx1997  
       2015-11-11 13:07:31 +08:00 via Android   ❤️ 1
    hx1997
        22
    hx1997  
       2015-11-11 13:08:04 +08:00 via Android   ❤️ 1
    @hx1997 SetProcessWorkingSetSize()

    Orz
    vh2h
        23
    vh2h  
    OP
       2015-11-11 13:14:09 +08:00
    @Lanceliel 谢谢你的答复,一条黑道走到底,没法保存,进行渲染的时候软件也没法操作。
    aalska
        24
    aalska  
       2015-11-11 14:46:02 +08:00   ❤️ 1
    用云来渲染啊
    阿里云走起
    vh2h
        25
    vh2h  
    OP
       2015-11-11 16:18:43 +08:00
    @aalska 阿里云的人说他们只做 maya 和 3dsmax 等的云渲染,这个他们不做。
    hitmanx
        26
    hitmanx  
       2015-11-11 16:26:04 +08:00   ❤️ 1
    说个可以验证的小方法.

    你可以把正在跑任务的电脑放到一边,重新开一台电脑,自己写个很简单的程序,就是申请内存,并且往里填些随机数据(必须要用,如果只是申请的话,有些操作系统会优化直到使用时才会真的分配给进程),来模拟 navisworks 的效果.这样就可以放心尝试各种你能搜到的优化虚拟内存的方法来测试结果,直到你找到结果以后,把解决方案复制到生产电脑上.
    vh2h
        27
    vh2h  
    OP
       2015-11-11 19:16:39 +08:00 via Android
    @hitmanx 感谢回复,我谷歌了下一键清理内存,深度清理内存等功能小软件,强制写入虚拟内存,还是有用的,虽然变慢了些,但总比一直动不了好,谢谢!
    msg7086
        28
    msg7086  
       2015-11-11 21:27:29 +08:00   ❤️ 1
    物理内存你不用他就不会给你。比如你开个 photoshop 或者开个清理内存的软件(原理一样的),就把这给挤出去了。

    类似这种软件本来就是设计成有多少内存吃多少内存的。
    如果操作系统没有写入交换文件,那就说明软件没有完全把内存吃满……
    我也不知道你到底想做什么,只不过我觉得这种清理内存的软件最容易把你的渲染程序搞崩了……
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   987 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 22:33 · PVG 06:33 · LAX 15:33 · JFK 18:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.