Vi.*_*Vi. 8 linux swap virtual-memory
我运行了一个内存饥渴的进程 ( mkcromfs),它消耗的内存比我的笔记本电脑上的物理内存多,所以它一直在分页、交换和颠簸,并且 loadavg 大约为 2(compcache也已经与通常的交换分区一起使用) ,但慢慢向前推进(虽然我担心它最终会尝试分配 >2GB 并崩溃耗尽 2 天的颠簸)。
当我想将笔记本电脑用于其他用途时,我会停止该过程,启动 X 服务器、firefox 和其他程序。问题是,当我启动 Firefox 时,loadavg 跳到 10 并且系统几乎完全没有响应(打开/关闭大写锁定时间很长,鼠标光标位置更新缓慢,从 X 服务器切换到 Linux 控制台缓慢,登录缓慢) .
停止的mkcromfs仍然拥有大量内存(464.8 MiB 并缓慢下降),并且仅当其他程序需要更多内存时才将其移动到交换区,这会导致速度大幅下降。
如何告诉 Linux 完全换出这个过程(例如,我不打算在短期内恢复它),可能会从交换其他数据中醒来?此外,能够指定确切的交换设备来交换给定的进程也很有用(例如,mkcromfs的内存在 ramzswap 中是无用的)。
更新:现在我只是从/dev/erandomto写入 400-600M 的数据tmpfs,它会mkcromfs缩小。有没有更合适的方法?
| 归档时间: |
|
| 查看次数: |
2271 次 |
| 最近记录: |