系统盘空间少了,突然少了1G。
什么是虚拟内存?
虚拟内存利用硬盘空间作为内存,弥补计算机RAM空间的不足。当实际RAM满时(实际上,在RAM满之前),在硬盘上创建虚拟内存。当物理内存用完时,虚拟内存管理器选择最近没有使用的低优先级内存部分,并将其写入交换文件。这个过程对应用程序是隐藏的,应用程序认为虚拟内存和实际内存是一样的。
技术细节:针对英特尔IA-32处理器(包括386、奔腾等。),当用户应用程序(进程)访问内存时,其内存地址是虚拟的,CPU会将其转换为实际的物理内存地址。当物理内存不足时,操作系统会将每个进程中暂时不用的一部分内存换出到页面文件(交换文件)中,并将需要访问内存的程序内容从页面文件交换到物理内存中。
虚拟内存的作用
不知道大家有没有注意到,在Windows2000(XP)目录下有一个名为pagefile.sys的系统文件(Windows98下为Win386.swp),它的大小经常自己变化。小的时候可能只有几十兆,大的时候就是几百兆。这种不规律的变化确实让很多人困惑。事实上,pagefile.sys是Windows下的一个虚拟内存,其功能与物理内存基本相似,但它是作为物理内存的“后备力量”而存在的,也就是只有在物理内存不够用的时候才会发挥作用。
虚拟内存的生成
众所周知,虽然硬盘在运行速度上不如内存,但内存在容量上是无法和硬盘相比的。当运行一个程序需要大量数据,占用大量内存时,内存会被“塞满”,暂时不用的数据会放在硬盘上,这些数据占用的空间就是虚拟内存。现在我们也明白为什么pagefile.sys的大小经常变化了。
内存在计算机中起着很大的作用。计算机中所有正在运行的程序都需要通过内存来执行。如果执行的程序分配的内存总量超过内存大小,就会导致内存耗尽。为了解决这个问题,Windows中使用了虚拟内存技术,即把一部分硬盘空间作为内存。内存用完了,电脑会自动调用硬盘充当内存,缓解内存的紧张。
比如压缩的时候,一个压缩器有时候需要读取一个文件的很大一部分,存储在内存中,以便重复查找。假设内存大小是128MB,要压缩的文件是200MB,压缩软件需要存储在内存中的大小也是200MB,那么操作系统要权衡压缩程序和系统中的其他程序,把多余的数据放到交换文件中。让我们来看看如何设置虚拟内存。
虚拟内存的设置
虚拟内存有两个主要设置,即内存大小和存储位置。内存大小是最小和最大虚拟内存。存储位置是设置虚拟内存应该使用哪个分区的硬盘空间。如何获取内存大小设置的最小值和最大值?可以通过选择开始→程序→附件→系统工具→系统监视器(如果在系统工具中没有,可以通过Windows installer中的添加/删除程序进行安装),然后选择编辑→添加项目,在类型项中选择内存管理器,在右边的列表中选择交换文件大小。这样,随着你的操作,交换文件值的波动就会显示出来。你可以打开你经常使用的程序,然后使用它们。此时,检查系统监视器中的性能值。因为用户每次使用电脑的情况都不一样,所以最好长时间监控交换文件,找出最适合自己的值,以保证系统性能稳定,保持最佳状态。一般来说,如果交换文件太大,不会影响效率,但是会额外占用磁盘空间。较小的交换文件有时会导致运行较少的程序。
找出最合适的范围值后,在设置虚拟内存时,右击“我的电脑”,选择“属性”弹出系统属性窗口,选择“性能”选项卡,点击下面的“虚拟内存”按钮弹出虚拟内存设置窗口,点击“用户指定的虚拟内存设置”单选按钮,选择“硬盘”剩余空间较大的分区,然后点击“最小值”弹出虚拟内存设置窗口。如果觉得用系统监视器获取最大值和最小值有点麻烦,可以在这里选择“让Windows管理虚拟内存设置”。
调整分页位置
Windows9x的虚拟内存分页位置实际上是存储在c盘根目录下的虚拟内存文件(也叫交换文件)Win386.swp,它的存储位置可以是任何分区。如果系统盘C的容量有限,我们可以通过在记事本中打开文件System.ini(C:Windows C: Windows)将Win386.swp转移到另一个分区。在[386Enh]部分,将“分页驱动器= c: Windows Win386.swp”更改为其他分区的路径。如果交换文件放在D:,就改成“PagingDrive=D:Win386.swp”。如果没有上述语句,可以直接键入。
对于使用Windows2000和WindowsXP的用户,可以选择设置→高级→控制面板中的更改→系统→性能打开虚拟内存设置窗口。默认情况下,在驱动器[卷标]中选择系统所在的分区。如果要换到其他分区,必须先将原分区设置为非分页文件,然后再选择其他分区。
或者说,WinXP一般要求物理内存在256M m以上,如果你喜欢玩大型3D游戏,内存(包括显存)不够大,系统往往会提示虚拟内存不够,系统会自动调整(虚拟内存设置为系统管理)。
如果你的硬盘空间足够大,还可以设置自己的虚拟内存。具体步骤如下:右键我的电脑→属性→高级→性能设置→高级→虚拟内存更改→选择存储虚拟内存(页面文件)的分区→自定义大小→确定最大最小值→设置。一般来说,虚拟内存是物理内存的1.5倍,或者大一点。如果不想频繁更改虚拟内存,可以将最大值和最小值设置为相同。{换句话说:我们需要注意在调整时不要将最大和最小页面文件设置为相等。因为通常内存并没有真正“满”,当内存储备达到一定程度时,它会自动把一些暂时不用的数据放入硬盘。最小页面文件越大,比例越低,执行速度越慢。最大页面文件是极限值。有时候打开很多程序,内存和最小页面文件都“满”了,就会自动溢出到最大页面文件。所以把两者设定为等同是不合理的。一般来说,最小页面文件设置得越小,使得内存中可以存储尽可能多的数据,效率越高。将最大页面文件设置得更大,以避免“满”的情况。
PS: ① 1.5倍虚拟内存设置,一般在网上技术文档中有描述,可以根据常用软件的实际情况进行设置。推荐给有经验的用户。
②有很多工具软件(如WINDOWS优化器、超级兔子)可以很好的改变这些设置,工具软件也会根据你电脑的实际情况做出相应的推荐设置。
使用虚拟内存的技巧
微软为我们提供了一个如何设置虚拟内存的官方解决方案。一般来说,我们推荐以下设置方法:
(1)在Windows系统所在的分区设置一个页面文件。文件的大小由您的系统设置决定。具体设置方法如下:打开“我的电脑”的“属性”设置窗口,切换到“高级”选项卡,在“启动和故障恢复”窗口的“写入调试信息”一栏,如果使用“无”,则将页面文件大小设置为2MB左右,如果使用“核心内存存储”和“全内存存储”,则将页面文件值设置得大一些。
提示:是否在系统分区中设置页面文件存在矛盾:如果设置了,系统可能会频繁读取这部分页面文件,从而增加系统盘所在磁道的负载。但如果没有设置,当系统出现蓝屏死机(尤其是STOP错误)时,无法创建转储文件(Memory.dmp),从而无法进行程序调试和报错。所以折中的办法就是在系统盘上设置一个更小的页面文件,只要够用就行。
(2)单独建立一个空白分区,在这个分区中设置虚拟内存,最小值设置为1.5倍物理内存,最大值设置为3倍物理内存。这个分区是专门用来存储页面文件的,不应该存储其他文件。之所以使用单独的分区来设置虚拟内存,主要是基于两方面的考虑:一是因为分区上没有其他文件,所以分区不会产生磁盘碎片,可以保证页面文件的数据读写不受磁盘碎片的干扰;其次,根据Windows的内存管理技术,Windows会优先考虑不经常访问的分区上的页面文件,这也减少了读取系统盘中页面文件的机会,减轻了系统盘的压力。
(3)其他硬盘分区不设置任何页面文件。当然,如果你有多个硬盘,你可以为每个硬盘创建一个页面文件。当信息分布在多个页面文件上时,硬盘控制器可以同时对多个硬盘进行读写操作。这样,系统性能将得到提高。
设置虚拟内存的注意事项
允许的最小虚拟内存为2MB,最大虚拟内存不能超过当前硬盘的剩余空间,同时不能超过32位操作系统-4GB的内存寻址范围。
1,禁用页面文件
当我们的内存超过1G时,页面文件的作用就不再明显了,可以禁用。方法是:依次进入注册表编辑器“HKEY _本地_机器系统CurrentControlSetControlSessionma-Nagermory Management”,在“DisablePa-gingExecutive”选项中将其值设置为“1”。
PS:这可能会导致系统不稳定。有些程序无法运行或崩溃。请根据自己的实际情况进行更改。
1G内存以上就够了。玩游戏或使用大型软件时,不建议禁用虚拟内存。当然,如果有2G内存,可以根据自己的实际情况选择虚拟内存的大小(我个人认为2G内存可以禁用虚拟内存来提高系统性能,VISTA系统内存使用量较大,可以根据实际情况设置)。
2.清除页面文件
同一位置有一个“ClearPageFileAtShutdown”,值设置为“1”。这里所说的“清除”页面文件,并不是指将pagefile.sys文件从硬盘中彻底删除,而是对其进行“清理”和整理。微软称,这是一个安全选项,与性能无关。
高级主题:使用SweepRAM工具。适用于Windows 2000/XP/2003。SweepRAM程序可以在网上找到。这个程序最大的功能就是清空所有进程的工作集。所谓工作集是指进程映射的物理内存(即这些内存块都在物理内存中,可以被CPU直接访问),一些不在工作集中的虚拟内存可能在转换列表中(CPU无法通过虚拟地址访问,需要Windows映射才能访问),还有一些在磁盘上的页面文件中。进程运行时,Windows将自动调整工作集。经常访问的页面(4KB块)将保留在内存中,而不经常访问的页面将在内存紧张时从工作集中删除,临时存储在内存中的“转换列表”中,或者进一步换出到页面文件中。当应用程序再次访问某个页面时,操作系统会将其添加回工作集。
SweepRAM工具以中等频率(大约40分钟一次)反复运行,可以清空每个进程的工作集,然后慢慢恢复每个进程的工作集。这可以保持更好的工作集平衡,提高系统性能。
虚拟内存操作的原理和过程
可能大家都知道,虚拟内存就是在物理内存不够用的时候,用硬盘的一部分作为内存。
这种理解其实不够准确。
物理内存是指人们通常所说的1G内存和512M内存。
首先要知道,打开任何一个程序都是占用物理内存的,而关闭这个程序的时候,系统也会从物理内存中删除这个程序的信息。
那么我们从两个方面来理解虚拟内存。
-假设电脑的物理内存是512M,系统安装在c盘。
(1)当有足够的物理内存时。
假设我们正在运行的程序占用215M,此时物理内存绝对够用,但是不要以为此时系统没有使用虚拟内存技术,系统仍然使用虚拟内存技术。当我们打开QQ时,系统为QQ程序指定了一个虚拟空间,但此时这个虚拟空间中没有任何信息。
(B)当物理内存不足时。
假设电脑运行“迅雷”和“IE浏览器”两个软件时物理内存已经达到512M,我们启动QQ。没有虚拟内存技术,这个时候我们是无法启动QQ的,因为QQ无法在内存中写入相关信息,但是现在有了虚拟内存技术,系统会释放一些物理内存给QQ。假设迅雷占用的物理内存被释放,那么迅雷占用的物理内存信息将为。
当我们想再次运行迅雷时,系统会从pagefile.sys中找到相应的迅雷信息,将信息重新加载到物理内存中,并将QQ信息释放到pagefile . sys中。
这样的循环交换过程就是虚拟内存技术。为什么叫虚拟?因为系统把文件释放到硬盘上,硬盘不是内存,只是一个临时存放内存信息的地方。
一句话,虚拟内存就是用内存以外的介质将信息存储在内存中,比如硬盘u盘。
Window xp系统中文件夹c:/windows/prefetch中的文件是虚拟内存技术的扩展,这些预取文件可以提高程序的运行速度。
当我们运行程序时,系统会根据内存记录下这个程序经常使用的文件,并记录下这个程序的阅读信息,同时创建一个后缀为的文件。pf在c:/windows/prefech下,并将读取的信息保存在这个。pf文件夹。
假设我们运行录制好的photoshop程序,那么当你双击桌面上的photoshop时,系统会先从c:/windows/prefetch中查找这个photoshop的相关记录,而不是继续运行photoshop。
系统根据之前的记录将photoshop中使用的相关文件加载到内存中。加载后photoshop可以继续运行,所以运行photoshop的速度会有所提高。你可能会看到。应该先执行pf文件,再执行ps程序。这样的速度会更快吗?其实这个处理速度是很快的。如果没有预读文件,打开photoshop的速度会很慢。
C:/windows/prefetch中还有一个Layout.ini文件,用来安排文件的加载顺序。
如果c:/windows/prefetch中有很多预读文件,那么每次运行程序时,系统都会花费大量的时间搜索程序是否有预读文件,这可能会导致程序启动缓慢,所以当预读文件很多时,就删除这些预读文件。
手动设置虚拟内存
①右键单击桌面上的“我的电脑”图标,在右键菜单中选择“属性”选项,打开“系统属性”窗口。单击窗口中的“高级”选项卡,打开高级设置对话框。
②单击“性能”区域中的“设置”按钮,并在“性能选项”窗口中选择“高级”选项卡以打开其对话框。
③在此对话框中可以看到关于虚拟内存的区域,点击“更改”按钮进入“虚拟内存”的设置窗口。选择一个空闲容量较大的分区,勾选“自定义大小”前的复选框,在“初始大小”和“最大值”栏填写具体值,然后依次点击“设置→确定”按钮,最后重启电脑,使虚拟内存设置生效。
附:虚拟内存的合理设置
按照一般的设置方法,虚拟内存交换文件的最小值和最大值可以同时设置为1.5倍的内存容量。但如果内存本身容量很大,比如512MB,会占用相当大的空间。所以我们可以这样设置虚拟内存的基本值:内存容量在256MB以下时,设置为1.5倍;512MB以上,设为一半内存容量;256MB和512MB之间的值被设置为与内存容量相同的值。
因为实际上每个人都不可能操作同一个应用,比如有的人要运行3DMAX、Photoshop等大型程序,有的人可能只是打字玩一些小游戏,所以对虚拟内存的要求是不一样的,所以要因地制宜准确设置虚拟内存空间的值。
①首先将虚拟内存的自定义“初始大小”和“最大值”设置为两个相同的值,比如500MB
②然后依次打开控制面板→管理工具→性能。在出现的性能对话框中,展开左栏的性能日志和告警,选择其下的计数器日志,右键单击右栏的空白处,在右键菜单中选择新建日志设置选项;
③在弹出对话框的“名称”栏中填写任意名称,如“虚拟内存测试”。点击窗口中的“添加计数器”按钮,进入下一个窗口;
④在此窗口中打开性能对象下拉列表,选择分页文件,勾选从列表中选择计数器,在下面的列中选择% Usage Peak勾选“从列表中选择一个例子”,在下面的列中选择“_合计”,然后点击“添加→关闭”完成。
⑥您可以在右栏中找到一个附加的“虚拟内存测试”项目。如果项目为红色,则表示尚未开始。点击此项,并在右键菜单中选择“开始”选项。
接下来运行一些常用的应用。运行一段时间后,进入日志文件所在系统分区下的默认目录“PerfLogs”,找到“虚拟内存Test _000001.csv”,用记事本程序打开。在这个内容中,我们看每一列中的倒数第二个值,也就是虚拟内存的利用率,求这个值的最大值,如图。
有了这个值,初始大小可以设置为230MB,最大值可以根据磁盘空间的大小自由设置。一般建议设置为最小值的2到3倍。这样可以让虚拟内存更准确,让自己喜欢的电脑运行更流畅高效。