加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Windows > 正文

windows-server-2008 – 在8 GB RAM机器上删除页面文件有什么好

发布时间:2021-05-26 17:29:28 所属栏目:Windows 来源:网络整理
导读:我在双核,x64 AMD和8 GB RAM上运行 Windows 7. 我甚至需要一个页面文件吗? 删除它有助于或损害性能吗? 如果这是服务器或桌面,它会有所作为吗? Windows 7与Windows 2008是否会对页面文件产生影响? TL; DR版本:让Windows处理您的内存/页面文件设置.与大

我在双核,x64 AMD和8 GB RAM上运行 Windows 7.

我甚至需要一个页面文件吗?

删除它有助于或损害性能吗?

如果这是服务器或桌面,它会有所作为吗?

Windows 7与Windows 2008是否会对页面文件产生影响?

TL; DR版本:让Windows处理您的内存/页面文件设置.与大多数系统管理员相比,MS的人们花了很多时间思考这些问题.

很多人似乎都认为Windows会根据需要将数据推送到页面文件中. EG:有些东西需要大量内存,并且没有足够的内存来满足需求,因此Windows在最后一分钟开始疯狂地将数据从RAM写入磁盘,以便它可以释放RAM以满足新的需求.

这是不正确的.引擎盖下还有更多内容.一般来说,Windows维护着一个后备存储,这意味着它希望在磁盘上的某个地方看到内存中的所有内容.现在,当某些东西出现并需要大量内存时,Windows可以非常快速地清除RAM,因为该数据已经存在于磁盘上,如果需要,可以将其分页回RAM.所以可以说页面文件中的大部分内容也在RAM中;数据被预先放置在页面文件中以加速新的内存分配需求.

描述所涉及的具体机制需要很多页面(参见Windows Internals第7章,并注意new edition将很快可用),但有一些值得注意的好事.首先,RAM中的大部分内容已经存在于磁盘上 – 例如从可执行文件或DLL获取的程序代码.所以这不需要写入页面文件; Windows可以简单地跟踪最初从中获取位的位置.其次,Windows会跟踪RAM中最常使用的数据,因此从RAM中清除那些在没有被访问的情况下最长的数据.

完全删除页面文件会导致更多的磁盘抖动.想象一个简单的场景,其中一些应用程序启动并需要80%的现有RAM.这将迫使当前可执行代码从RAM中 – 甚至可能是OS代码.现在,每当其他应用程序 – 或操作系统本身(!!)需要访问该数据时,操作系统必须将它们从磁盘上的后备存储中分页,导致大量颠簸.因为没有页面文件可以作为临时数据的后备存储,所以可以分页的唯一内容是可执行文件和具有固有后备存储的DLL.

当然有许多资源/利用方案.你有一个场景可能不会因为删除页面文件而产生不利影响,但这些都是少数.在大多数情况下,删除或减少页面文件将导致峰值资源利用率方案下的性能降低.

一些参考:

> Windows Internals book(s)(4th edition和5th edition)
> Pushing the Limits of Windows: Physical Memory
> Pushing the Limits of Windows: Virtual Memory
> Inside the Windows Vista Kernel: Part 1
> Inside the Windows Vista Kernel: Part 2
> Inside the Windows Vista Kernel: Part 3
> Understanding Virtual Memory
> RAM,Virtual Memory,Pagefile and all that stuff(这是longer version)
> The Out-of-Memory Syndrome,or: Why Do I Still Need a Pagefile?

dmo noted最近的Eric Lippert post有助于理解虚拟内存(尽管与问题的关联性较小).我把它放在这里因为我怀疑有些人不会向下滚动到其他答案 – 但如果你发现它有价值,你欠dmo投票,所以用the link到达那里!

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!