网站地图    收藏   

主页 > 后端 > 网站安全 >

碎片的产生、影响、处理和其他 - Windows操作系统

来源:自学PHP网    时间:2015-04-17 18:33 作者: 阅读:

[导读] 作者:Steven 来源:MS Community一、分页文件的碎片是在什么情况下产生的? 一般的,无论是按照系统默认的“windows管理分页文件大小”还是“自定义”,分页文件都有一个初始值和一个...


作者:Steven 来源:MS Community

一、分页文件的碎片是在什么情况下产生的?

  一般的,无论是按照系统默认的“windows管理分页文件大小”还是“自定义”,分页文件都有一个初始值和一个最大值。初始值默认是系统物理内存的1.5倍。比如您是128M的物理内存,那分页文件的初始值就是196M。这一般也是分页文件在硬盘上占用的空间大小。当系统需要更大的虚拟内存时,则自行增大分页文件大小,使之大于196M以满足需要,那么这时就可能会产生分页文件的碎片。反过来,如果根据您的实际需要,将分页文件的初始值设置的大些,使系统不需要自行调大分页文件,那么也就不会产生碎片。这也就是为什么将分页文件大小设置为固定值不会产生碎片的原因。

  二、将分页文件大小固定后还会产生碎片吗?这样设置有什么潜在的问题?

  所谓将分页文件大小固定,就是将分页文件的初始值和最大值设为相同。按照上面的论述,这样不会产生文件碎片。因为系统不再会调整它的大小。这样就引出一个问题,需要将这个固定值设置的比您的实际需要大才行。否则,系统就会出现out of
memory的错误;因为将它固定了,系统不能调整它的大小。而当您的实际需要改变,比如需要使用系统运行视音频的编辑、图形设计等消耗内存较大的程序时,这个问题常常暴露出来。所以,如果要这样设置,那么需要心里有个数。

三、是否有办法使分页文件尽可能不产生碎片?

  两个方面:一个是增大物理内存;一个是设置一个合理的分页文件初始值。

  首先,windows里的程序在运行时总是优先利用物理内存,即使是物理内存用尽了,当新运行一个程序时,它也是尽可能调度物理内存。除非物理内存确实不够用,才调度分页文件,这时就利用硬盘空间做虚拟内存,您会感到系统运行速度下降。所以,增加物理内存,无论从提高性能还是从文件碎片角度,都是有益处。往往的,增加物理内存提升的性能比升级CPU等要显著的多。当然,这需要银子。

  第二,分页文件的初始值问题。前面讲了,初始值小,则容易产生碎片。因为系统会根据需要调整分页文件大小。所以,从文件碎片角度讲,应该根据需要,设置一个合适的初始值。但,也可能会占用更多的硬盘空间。

  四、分页文件的碎片对系统性能影响大吗?

  通常情况下,分页文件会产生一些文件碎片,但一般不会对系统性能产生能“感觉出的”影响,或者说,影响很小,不需要处理。而且,如Inside Out里讲的,

In practice, the design of the page file
is such that it tends to use large blocks of disk space, and as a result the
impact of fragmentation on the page file is minimal. You might notice a very
small performance hit when Windows increases the size of the page file, but
thats a one-time operation and wont affect everyday performance. 事实也是如此

 五、如果分页文件有大量碎片,如何处理?

  在极少数情况下,如果分页文件真的产生大量碎片,这样会影响性能、需要处理。

  我们知道,系统自带的磁盘整理程序对分页文件的碎片是无法处理的。这里提供一个变通的方法:

  首先,按照http://support.microsoft.com/?id=307886里的方法,将分页文件从启动分区移动到其他分区、并在启动分区设置“无分页文件”。重启后先查看启动分区有无分页文件,如果有,删除,然后运行磁盘整理程序、整理启动分区的碎片,结束后,再按照KB307886的方法将它移动回来即可。这个方法也可以在很大程度上满足“力求完美”的用户的心理。

  五、为什么微软推荐分页文件的初始值最小应该是物理内存的1.5倍?可以将它设置的小一些吗?

  我是这样看这个1.5倍的:Windows XP系统在默认设置下,对于系统失败或故障的处理是,向系统写入完全转存储文件。那么如果要写入完全转存储文件,需要启动分区的分页文件大小至少等于物理内存大小才行,否则就不行。微软推荐分页文件的初始大小为物理内存的1.5倍,原因可能也在这里。理解了这个,也会知道,可以设置的小一些,但设置前要更改系统的写转存储文件的设置。应该了解的是,初始值设置的小,可能更容易产生碎片。

这个问题确实存在着一些争议。比如有人提出,不应该根据物理内存大小设置分页文件的初始值,而应该根据实际情况或实际需要。这个说法本身没多大问题,但,可能,微软有微软的考虑。公司总是向用户提供最稳妥的使用他们产品的建议。

  六、一般家庭用户需要干预分页文件的设置吗?

  一定先牢记我这句话:作为普通用户,您没必要过于关注系统的这个分页文件,也不需要费心的研究如何设置它、以及过于担忧它的碎片问题。您也不要再幻想通过它来显著提高系统性能。就当它不存在。

  有一种情况例外,就是启动分区的空间吃紧,您可以将它移动到其他分区。从优化角度,更新后的314482这篇KB(2.0)介绍的方法,是有前提条件的:电脑有两块或更多块的硬盘时,才有机会使用这个方法;当然,如果您有这样的机会或者条件具备,可以采用里面的方法设置分页文件。

  如果您发现由于虚拟内存的原因,系统运行速度缓慢,那么,无论怎样设置这个分页文件、“处理”它的碎片,都不会得到满意的结果。这种情况下,建议您增加物理内存,来满足您的实际需要。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论