免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6257 | 回复: 11
打印 上一主题 下一主题

[内存管理] 如果没有swap分区,是不是就不支持page换页操作? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-03-01 15:21 |只看该作者 |倒序浏览
请教一个问题:
如果系统没有设置swap分区,那么就不会有换页的操作,因此也就不会有page fault发生?
对于实时系统,如果对时序要求比较精确,不允许有未确定因素的话,一般需要关闭换页功能吧?

论坛徽章:
3
双鱼座
日期:2013-09-04 19:47:39天蝎座
日期:2013-12-11 20:30:532015年亚洲杯之澳大利亚
日期:2015-04-20 00:28:02
2 [报告]
发表于 2014-03-01 19:45 |只看该作者
回复 1# Huntsmen


    两者无关吧. swap 分区只负责缓存无名页。普通文件是可以通过disk进行缓存.

论坛徽章:
1
天蝎座
日期:2013-10-23 21:11:03
3 [报告]
发表于 2014-03-01 20:52 |只看该作者
回复 2# kiongf


    page reclaim 导致内存刷新?感觉压力大了会有抖动现象?

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
4 [报告]
发表于 2014-03-03 08:42 |只看该作者
page fault跟swap没有直接关系,概念不同,对实时性要求高的话,通常是需要关闭swap的。

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
5 [报告]
发表于 2014-03-03 10:28 |只看该作者
回复 2# kiongf

以前一直不求甚解,所以这里请教下:

1. 内核空间的页面不允许 swap out

2. 进程空间的 annoymous page允许 swap out到 swap分区

3. 内存压力大时,dirty page cache页面可以直接 flush回磁盘,然后做回收!

不知道我的理解是不是正确。 kiongf你说的普通文件是可以通过disk进行缓存是指 3么?

论坛徽章:
2
CU十二周年纪念徽章
日期:2013-10-24 15:41:34处女座
日期:2013-12-27 22:22:41
6 [报告]
发表于 2014-03-03 11:25 |只看该作者
asuka2001 发表于 2014-03-03 10:28
回复 2# kiongf
以前一直不求甚解,所以这里请教下:

1. 内核空间的页面不允许 swap out

2. 进程空间的 annoymous page允许 swap out到 swap分区

3. 内存压力大时,dirty page cache页面可以直接 flush回磁盘,然后做回收!

不知道我的理解是不是正确。 kiongf你说的普通文件是可以通过disk进行缓存是指 3么?


可以统一地认为用户态的所有页(code, data, heap, stack, 显示mmap)皆mmap自磁盘文件。

然后才有有名页(file)/匿名页(swap)的区别。

论坛徽章:
0
7 [报告]
发表于 2014-03-03 11:29 |只看该作者
本帖最后由 Huntsmen 于 2014-03-03 12:21 编辑

个人理解:
如果系统没有swap分区,那页面要换到什么地方去呢?没有地方存放换出来的页面,也就意味着系统不支持换页机制;
如果没有swap分区,就要求运行的程序不能超过物理内存大小?比如我的系统内存是128M的,当运行程序超过128M以后,就不能够运行了

不对的地方请帮忙指正,谢谢!

论坛徽章:
17
水瓶座
日期:2013-08-29 12:09:27白羊座
日期:2014-08-07 12:36:42丑牛
日期:2014-07-24 12:44:41寅虎
日期:2014-04-16 16:15:33寅虎
日期:2014-03-12 09:28:43摩羯座
日期:2014-03-06 13:22:04技术图书徽章
日期:2014-03-06 11:34:50天蝎座
日期:2014-01-09 11:31:44寅虎
日期:2013-12-27 17:01:44双子座
日期:2013-12-27 12:32:29双子座
日期:2013-12-25 09:03:33丑牛
日期:2013-12-24 16:18:44
8 [报告]
发表于 2014-03-03 12:20 |只看该作者
回复 6# tempname2

这种理解感觉很新鲜很形象,而且难得可贵的是非常统一:)实在感谢指点!

论坛徽章:
15
射手座
日期:2014-02-26 13:45:082015年迎新春徽章
日期:2015-03-04 09:54:452015年辞旧岁徽章
日期:2015-03-03 16:54:15羊年新春福章
日期:2015-02-26 08:47:552015年亚洲杯之卡塔尔
日期:2015-02-03 08:33:45射手座
日期:2014-12-31 08:36:51水瓶座
日期:2014-06-04 08:33:52天蝎座
日期:2014-05-14 14:30:41天秤座
日期:2014-04-21 08:37:08处女座
日期:2014-04-18 16:57:05戌狗
日期:2014-04-04 12:21:33技术图书徽章
日期:2014-03-25 09:00:29
9 [报告]
发表于 2014-03-03 14:01 |只看该作者
Huntsmen 发表于 2014-03-03 11:29
个人理解:
如果系统没有swap分区,那页面要换到什么地方去呢?没有地方存放换出来的页面,也就意味着系统 ...

如果没有swap,就不能交换页面了。
当内存不足时,可能会:
1、先尝试回收内存,比如cache(使用GFP_ATOMIC标记的分配操作除外,此时不会回收缓存)
2、如无法回收内存,或者回收后仍不足以满足内存分配要求,则会OOM
3、OOM,会进一步回收内存,甚至kill进程。
4、如果此时还无法满足内存分配要求,内核就要崩溃了~~

通常情况下,服务器应用场景中,为安全起见,都会使用swap,防止内存溢出。
嵌入式或实时应用场景中,不使用swap,但需要保证内存分配可控,防止内存溢出的情况。

论坛徽章:
0
10 [报告]
发表于 2014-03-03 18:47 |只看该作者
humjb兄说的很透彻,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP