首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux有页面文件吗?

Linux有页面文件吗?
EN

Stack Overflow用户
提问于 2016-01-28 15:01:24
回答 2查看 10.8K关注 0票数 0

我在几个地方发现Linux使用页面和分页机制,但我没有找到这个文件的位置或如何配置它。

我找到的所有信息都是关于Linux交换文件/分区的。分页和交换是有区别的:

分页将页面(包含一段数据的小框架,通常为4KB,但在不同的操作系统之间可能会有所不同)从主内存移动到后弯存储,这始终是操作系统的正常功能。交换将整个进程移动到存储中,当系统内存紧张时,或者在Windows8上,当新的应用程序处于休眠状态时,就会发生交换。

Linux是否在这两种情况下都使用它的交换文件/分区?如果是这样,我如何才能看到当前有多少页被调出?此信息在vmstat、free或swapon命令中不存在(或者我看不到它)。

或者是否有另一个文件用于分页?如果是这样,我如何配置它(并观察它的使用情况)?

或者也许Linux根本不使用分页,我被误导了?

如果答案是针对红帽企业Linux版本6和7的,我将不胜感激,但同时也是关于所有Linux的一般答案将是好的。

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-29 00:59:15

虽然Linux保留了“交换分区”这一术语作为历史遗迹,但它实际上执行分页。因此,您的期望得到了证实;您只是被古老的术语抛弃了。

票数 1
EN

Stack Overflow用户

发布于 2016-01-28 15:06:35

在Linux上,交换分区用于分页。

Linux不会通过换出整个进程来应对内存压力。虚拟内存系统确实需要逐页分页。在极端的内存压力下,一个或多个进程将被OOM杀手杀死。(在man malloc的第一个注释中有一些有用的文档链接)

top头中有一行显示交换分区的使用情况,但如果这就是您需要的全部信息,请使用

代码语言:javascript
复制
swapon -s

man swapon获取更多信息。

交换分区使用情况与未映射页面的数量不同。可以使用mmap调用将页面内存映射到文件;由于该页面在文件中有备份存储,因此不需要将其也写入交换分区,系统也不会为此使用交换空间。但是交换分区的使用情况是一个很好的指标。

还要注意,Linux (与Windows不同)在分配页时不会为页分配交换空间。相反,它会将新页面添加到虚拟内存映射中,而不需要任何后备存储。并在需要换出页面时分配交换空间。其结果(如前面提到的malloc手册页中所述)是malloc调用可能会成功分配虚拟内存,但随后尝试使用该虚拟内存可能会失败。

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

https://stackoverflow.com/questions/35054783

复制
相关文章

相似问题

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