请教一个交换空间的术语问题
用OS X的时候发现一个现象https://ooo.0o0.ooo/2017/08/16/59944e8c69e0f.png
这里面这个swp是指交换空间是吧?
我用的时候发现--它的大小是可以实现自由变化的。比如说我开机的时候swp就是0MB。现在变大了,我关掉一些软件又会变小。请教一下这个功能可以在别的操作系统上面实现吗?有关键词或者链接就行了,我查了动态交换空间没有查到。
有这个问题的原因是,以前有时候我直接打开个psd或者100个chrome标签页,然后机器吃完内存和交换空间以后直接死机了,很头痛。现在会等到把硬盘都占满了才变卡
虚拟内存 阳光下的草 发表于 2017-8-16 07:27
虚拟内存
我问的可能不是这个,win 里面的PAGEFILE.SYS是不是开机以后无论怎么样,占据的大小都不变?我问的功能,是指那种系统自己随大随小设置的功能。OS X里面操作是把交换空间挂载到/private/var/vm/这个目录
https://i.loli.net/2017/08/16/59945a0845f51.png
然后根据系统需求随大随小,假如win里面不支持的话?Linux环境下有没有相关的软件? win下的页面如果你按默认交给系统管理也是动态大小的,只不过好像不会吃满,从几十M到物理内存的1.5还是2.5倍来着? 栗悟飯 发表于 2017-8-16 22:45
我问的可能不是这个,win 里面的PAGEFILE.SYS是不是开机以后无论怎么样,占据的大小都不变?我问的功能, ...
这个就是虚拟内存啊,WIN10的pagefile也会自己变大变小啊 qwased 发表于 2017-8-16 07:56
这个就是虚拟内存啊,WIN10的pagefile也会自己变大变小啊
还是没有搞懂。。。
https://i.loli.net/2017/08/16/5994678750d7f.png
比如说这张图是指系统的虚拟内存只能在400MB以上工作吗?每次开机都要占用这点空间吗?最大值到大约22GB好像系统就卡死了,硬盘就不写入了只好强制关机。
OS X上面我暴力测试过,进系统的时候,swp是0MB然后开了软件以后swp涨到了大约130GB。
会不会是硬盘的锅? 栗悟飯 发表于 2017-8-16 23:49
还是没有搞懂。。。
比如说这张图是指系统的虚拟内存只能在400MB以上工作吗?每次开机都要占用这点空间吗 ...
不是很明白你在纠结什么,WIN10的虚拟内存让它自动管理就行了,它会把不常用的数据丢进去的
类unix的话swap是要到物理内存都用完了才开始用的 qwased 发表于 2017-8-16 09:36
不是很明白你在纠结什么,WIN10的虚拟内存让它自动管理就行了,它会把不常用的数据丢进去的
类unix的话sw ...
对,问的就是这个。大概是我语文不好。这句,类unix的话swap是要到物理内存都用完了才开始用的有什么相关的资料或者术语吗?就是这种按需求分配磁盘,内存不够用的时候才开始从0MB挂载交换分区的过程。而不是你手动设定什么最大值最小值到虚拟内存的机制。 本帖最后由 quadpixels 于 2017-8-17 11:05 编辑
在Ubuntu中的Swap也可以是占硬盘中的一个分区,其大小是有上限的,如果满了电脑就会卡死(或者ssh时过几分钟才有反应)
(相比起来,Windows默认设定下的交换是一个大小可变的页面文件C:\pagefile.sys,可能楼主的苹果机也是类似的原理吧)
感觉相关的术语可能有“paging”,或者说“page-in”和“page-out”,也就是当 CPU 存取一个页面时,该页面不在物理内存中,而是在页面文件或交换分区中,就称为遇到了一个“page fault”,此时该页面需要从页面文件搬入物理内存,这个动作也称为“page in”,反之将物理内存中的一页放到虚拟内存中就叫“page out”。当“page out”时,就需要占用页面文件或交换分区,就有可能需要分配空间。
分配空间可能称为“allocate”,就像在西加加中的 std::vector 中如果大小为 2,再塞入一个元素时,其对应的内存分配器(allocator)就会重新分配(allocate)一个大小为 4 的空间,然后把旧有空间中的元素移到新空间中,这可能就有点像页面文件增大这么个过程(也可以想象成 std::unordered_map,因为它是基于散列表的,而且也会重新分配存储空间,散列表更像内存访问时的转换这一层意思。)
有一个禁止把某页被page out的方法,叫把这一页给pin住
这些情况就是我所知道的了吧
quadpixels 发表于 2017-8-16 19:46
在Ubuntu中的Swap也可以是占硬盘中的一个分区,其大小是有上限的,如果满了电脑就会卡死(或者ssh时过几分 ...
我这方面不专业,但是ubuntu这个,是不是指sda5和sda6各自享有一个固定大小的分区?sda6写到磁盘分区表里面以后,是不是没办法由系统自动调整分区大小(比如说在自动缩小sda5的同时,扩大sda6,sda6也始终保持挂载状态,不需要swapoff然后在swapon)?我想问的资料有点像这个swapspace,但是项目好像停了。
页:
[1]