Windows任务管理器中内存使用、虚拟内存区别及与页面文件的关系

    引自:http://bbs.yyon.cn/viewthread.php?tid=85920作者:spain

    虚拟内存(VirtualMemory)是Windows管理所有可用内存的方式。对于32位Windows系统,每个进程所用到的虚拟内存地址从0到2^32-1,总容量4GB,其中2GB是与操作系统以及其他所有进程所共享,另外2GB分派给进程独占(这就是常说的32位Windows中一个进程最多能用2G内存的由来)。   

    4GB虚拟地址空间(Virtual AddressSpace,VAS)中,2GB的进程独占VAS是进程隔离的,换句话说,每个进程都可以从RAM或者硬盘上映射到属于自己的2GBVAS。所以虽然32位Windows每个进程最多只能获得4GB可用虚拟内存,但是所有进程总和可以使用总量超过4GB的虚拟内存。可惜XP只支持4GB RAM,也就是说超出部分一定得靠页面文件补足;而比如2003企业版通过PAE支持32GBRAM,可以减少页面文件的用量。(但单个进程最多仍然只有4GB虚拟内存地址空间,而不是32GB)   

    所以,一个简单的计算示例:三个进程最多能用掉多少VAS?  

    2GB(共享)+2GB(独占)×3=8GB   

    这4GB的虚拟地址空间,按照4KB的大小进行分页(page),然后以页为单位映射到实际存储单元中,包括:  

    ·物理内存(RAM)  

    ·页面文件(Page File,在Win9x中称为交换文件Swap File,即win386.swp)  

    ·其他文件自身(比如一些长时间未活动的进程的exe文件自身)  

    可见,通常人们所说的虚拟内存实际上只是指其中的页面/交换文件而已,这是对虚拟内存的一个错误的理解。虚拟内存≠页面文件   RAM中除了保存最近读写的文件缓存(FileCache,相当于Win9x中的Vcache)主要用来存储正在使用的程序代码和数据,当RAM资源紧张,或者有程序码或数据长时间未使用时,XP通常会将非活跃程序码所在的地址页映射回程序文件(exe、dll等),将数据所在的地址页映射到页面文件(pagefile.sys)中并拷贝数据,然后将它们本来占用的RAM空间释放。这个过程称为页出(Page Out)。   

    当系统读取某个虚拟内存地址,而该地址所在的页不在RAM中时,将产生一个页面错误(PageFault)中断,告诉系统从页面文件或者程序文件中取回包含该地址的虚拟内存页,即将内容拷回到RAM并建立新的虚拟地址映射,并将页面文件中对应部分标记为未使用,这个过程就是页入(Page In)。页入成功的话就是一个Valid Page Fault,否则就是Invalid PageFault。前者非常普遍,(可以在任务管理器的进程页监视到)而后者是由程序或硬件错误引起,如果发生在进程上会导致非法操作,如果是系统自身则很可能蓝屏。   

    内存用量可以在任务管理器的性能页中看到。其中物理内存的总量、可用数等是指安装的RAM容量和剩余RAM容量,而内存使用(2000下的正确翻译,M注)或者提交更改(XP下的错误翻译,M注)的总量和限制是指虚拟内存的Commit Limit和CommittedBytes,可以理解成系统可以使用的虚拟内存总量和当前使用量,其中总量是由RAM大小+页面文件大小决定的。   

    而在任务管理器的进程页中,“内存使用”和“虚拟内存大小”造成的误解很多,而实际上,这两个值是对应性能监视器中该进程的WorkingSet和Private Bytes,WorkingSet是指一个进程的4GB虚拟地址空间中被映射到RAM中的部分的大小,通常是该进程的虚拟内存中的活跃部分。表面看来这个表述和“进程占用的RAM大小”没有太大区别,但至少有两种情况导致了例外的发生:第一种是这部分虚拟内存如果是属于2G的系统共享虚拟内存,那么它映射到的RAM地址可能和其他进程有重复,计算多个进程占用RAM总和就不正确,使得所有进程的WorkingSet之和比实际占用RAM要大。第二种是一个进程中可能有同一段RAM内容的多个引用,比如一个文件被loop多次,此时虚拟空间中会有多段地址被映射到同一段RAM上,从而造成该进程的Working Set比实际占用RAM要大。   

    Private Bytes是一个进程的2GB独占虚拟地址空间中用到的部分的大小,无论这部分是在RAM中还是在页面文件中,甚至是在exe、dll等文件中。所以,任务管理器进程页中的虚拟内存绝对不反映pagefile.sys的用量。   

    所以,任务管理器无论是进程页还是性能页都不能直接反映pagefile的使用情况,诸如“关掉pagefile还能看到虚拟内存”之类的疑问,应该很清楚了。   

(再次抱怨一下Windows中文版糟糕的专业术语翻译,M注)   

下面是一个简单图示,两个进程,各自拥有2G独占VAS,共同拥有2G共享VAS,W代表映射到RAM中的部分(Working Set),P代表页出的部分。

0 …………………2GB独占VAS………………… 2G ………2GB共享VAS……… 4G

进程1 |-----PPPP------------WW-----PPPP--------|

  ||

  || --PPPPPPPPPPPP--WWWWWWWW--|

   || |||| | ||||||||||| |||||||| (exe2磁盘exe1) RAMemory PageFile | 共享内核/dll等 共享RAM空间

    |||| |||| || |

进程2 |-PPPP-----------WWWW---------PP----P----|   

    然后,任务管理器的进程页中的“内存”就是上图中的W,所以所有进程的内存项加起来肯定比实际用的RAM大,因为有共享部分此外还有重复引用。而任务管理器进程页中的“虚拟内存”就是上图中左半部分,“独占VAS”。可见pagefile只是其中的一部分,而RAM,只要用于独占VAS,一样计入了该处“虚拟内存”。   最后,实际的页面文件用量(pagefile.sys中实际使用部分),可以在性能监视器中看到,即Paging File下的% Usage和%Usage Peak配合当前pagefile.sys的大小就可以计算出字节数,这个值可以做为设定页面文件最小值的一个参考,而不是用任务管理器进程页的所有进程的虚拟内存大小相加做为页面文件最小值的参考。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
EasyHost虚拟主机系统是针对网络公司销售域名、主机、邮局、数据库等产品时效率低、管理难等问题而自主研发的集产品自动化开通、管理、续费、升级等功能为一体的软件系统。通过多年的改进与运作,软件已具有功能强大、安全稳定、操作简便等特点。该软件采用C 、VB语言及ASP等脚本语言编写。并采用了TCP/IP通讯协议通过后台服务保证其安全稳定运行。让您通过简单的操作即可轻松完成各项业务的开通和管理。让您公司的业绩步步攀升。 详细介绍: 1、主控端同时支持Access/SQL Server数据库。 3、系统支持51种域名的在线查询及注册。 4、支持5家域名实时注册接口,包括:新网、新网互连、国频道、商务国、万网。 2、被控端以后台服务方式运行,运行更加稳定。主控端和被控端通讯采用TCP/IP方式。通讯更加安全。 5、支持全能主机ASP、ASP.Net、PHP、CGI、WAP等脚本的自动开设。 6、支持Windows2003操作系统的应用程序池模式,并可以自定义站点共享应用程序池数量。 7、强大的主机控制面板功能,包括:IP访问限制、关闭/恢复站点执行权限、在线压缩及解压、ASP代码加密、目录密码保护、自定义MIME类型 等。 8、支持纯FTP主机的开设,并支持子FTP帐号的开设及管理。 9、支持IMAIL和WINWEBMAIL企业邮局系统。 10、支持SQL Server数据库和MySQL数据库的实时开设。 11、强大的服务器管理功能,您可以在线服务器、重启IIS、MAIL、FTP、SQL Server、MySQL服务。 12、在线监控CPU、内存使用率、磁盘空间使用情况等。在线管理进程、服务、NT用户等信息。并可以结束相关的服务和进程。 13、支持9家常用的在线支付接口,包括:网银、快钱、iPay、NPS、云网、AllBuy、易宝、支付宝、财付通。 14、完善的备案自动审核系统,自动检查未备案网站,发送邮件通知,到期未备案的网站将被自动停止。 15、支持会员特殊价格,您可以针对不同的会员设置不同的产品价格。 16、支持发票申请,会员可通过前台申请发票,管理员可通过后台进行审核等操作。管理员可自定义发票税率及寄送发票所产生的邮寄费用等 。 17、超强的产品赠送模块,所有产品均可以添加无限赠品。赠品可跟随产品一并开通、一并续费,或分别续费。 18、系统全自动安装,无须烦琐的安装过程。并且重做系统后也能通过恢复程序自动恢复。 【功能介绍】 1、域名注册 ※ 支持51种域名后缀查询,并可自定义域名查询接口。 ※ 支持5家域名实时查询注册接口,如:新网、新网互连、国频道、商务国、万网。 ※ 自定义域名注册价格、续费价格、注册年限参数。可以按照不同会员等级定义会员的注册价格和续费价格。 ※ 支持自定义域名产品或已开通域名的续费方式,如:按照购买价格续费或域名实时价格续费。 ※ 先进的域名查询接口机制,默认支持新网、新网互连、国频道、商务国、万网查询接口。并可自主添加域名查询接口。 ※ 支持域名实时管理功能,如:修改域名联系人、修改DNS服务器、域名解析、修改域名密码、域名证书、域名续费等。 ※ 自定义域名注册接口功能。您可以设置不同的域名后缀使用不同的注册接口注册,且不影响已开通域名的管理。 2、虚拟主机 ※ 支持虚拟主机实时开通、管理。 ※ 支持ASP、ASP.Net、PHP、CGI、WAP等脚本的自动开设。 ※ 支持多站点共享应用程序池,并可以每几个站点共享一个应用池。 ※ 强大的虚拟主机管理功能,如:站点状态、FTP帐号状态、日志状态、FTP密码、默认文档、404错误页面、绑定域名、删除文件、自定义脚 本错误消息、IP访问限制、关闭/恢复站点执行权限、在线压缩、在线解压缩、ASP代码加密、目录IP访问限制、取消/恢复目录执行权限、目录 密码保护功能、自定义MIME类型、独立应用程序池回收等。 ※ 自定义管理产品相关参数,如:虚拟主机扩展功能、域名绑定数量、日志、FTP连接数、上传、下载速率、强制广告等。 ※ 可设置虚拟主机是否支持试用以及试用天数。 ※ 虚拟主机升级、续费。 3、FTP主机 ※ 支持FTP主机实时开通、管理。 ※ 自定义管理产品相关参数,如:FTP用户数、FTP连接数、同一IP登陆数、连接超时、任务超时、上传速率、下载速率等。 ※ 支持多FTP用户管理,并为每个FTP用户分配独立的目录或权限。 ※ 支持FTP管理功能,如:FTP密码修改、FTP状态修改、删除文件、FTP用户管理等。 ※ 可设置FTP主机是否支持试用以及试用天数。 ※ FTP主机升级、续费 4、企业邮局 ※ 支持IMAI

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值