首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么有些进程使用交换,而另一些则不使用?

为什么有些进程使用交换,而另一些则不使用?
EN

Ask Ubuntu用户
提问于 2014-03-21 17:27:56
回答 2查看 1.1K关注 0票数 4

当我工作繁重时,我不时地体验到我的系统(Ubuntu13.10)冻结了。Syslog说,一个进程必须被杀死以导致内存短缺。

代码语言:javascript
复制
Killed process 4693 (chromium-browse) total-vm:1386284kB, anon-rss:31688kB, file-rss:3424kB

即使我的互换几乎是空的,也会发生这种情况。我有4GB内存和4GB交换分区。

托普说:

代码语言:javascript
复制
KiB Mem:   3932056 total,  2828880 used
KiB Swap:  4079612 total,   332492 used,

所以有足够的空间。但后来我发现,有些进程根本没有使用交换。他们似乎吃掉了我所有的物理内存,甚至没有考虑把一些页面交换到磁盘上。我使用"top"'s交换栏来验证每个进程的交换使用情况。

例如,Chromium浏览器和VirtualBox。其他的,如Firefox,Netbeans等,正在进行交换。

那么,是谁“决定”了什么过程是交换的,哪些不是呢?据我理解,这是由内核完成的,因为从应用程序的角度来看,内存是内存,而不区分交换内存和物理RAM。这是真的吗,还是Chromium将应用程序设置为只使用物理RAM?

谢谢你的帮忙!

EN

回答 2

Ask Ubuntu用户

回答已采纳

发布于 2014-03-21 21:53:57

我认为你的“问题”是在VirtualBox。

根据VirtualBox手册

基本内存--这设置了在VM运行时分配和分配给VM的RAM数量。指定的内存量将从主机操作系统中请求,因此在试图启动VM时,它必须可用或作为空闲内存在主机上可用,并且在VM运行时对主机不可用。

我在VirtualBox论坛上发现了类似的评论(尽管它们没有那么有用)。

请参阅:https://forums.virtualbox.org/viewtopic.php?f=2&t=50179

因此,我猜virtualbox内核模块会为来宾分配空闲内存,但没有礼貌地通知主机。因此,当您查看空闲RAM (使用free -m等工具)时,您似乎有足够的内存,但是.因为内核模块没有通知主机操作系统,所以主机无法适当地管理交换,然后应用程序崩溃,导致内存不足(空闲或交换)。

我建议你提交一份错误报告,但是,我猜它会被关闭,因为“不会修复”

来自VirtualBox论坛上的帖子,链接在Tim的评论中:

要回答您关于VBox是否可以使用交换的问题,不行,只有操作系统才能这样做。交换不是实际可用的内存。

票数 1
EN

Ask Ubuntu用户

发布于 2014-03-21 17:35:03

Linux内核“决定”了这一点。它使用一个名为交换性的可调参数来完成此操作。

票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/437453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档