我有一台运行缓慢的Windows 2003 Server,其中提交费用和页面文件使用率不断提高,直到最终重新启动为止。为了解决这个问题,我需要找出消耗所有内存的东西,这就是大谜团所在。
来自任务管理器的当前统计信息:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
很好,让我们启动SysInternals Process Explorer并检查所有正在运行的东西的工作集大小。罪魁祸首是使用121,980K WS,481,284K VM大小的Tomcat实例。几乎没有什么可以解释5 GB的提交费用了。
下一步:Sysinternals的则PsList:pslist -m
,由列并计算列总和为所报告的61个处理分裂的输出。
SUM (Working Set) : 681,484 K
SUM (Private Bytes): 593,424 K
我是否从根本上误解了所报告的工具?我一直给人的印象是,操作系统实际上会比进程映射的虚拟内存总量少得多的内存,前提是它实际上不会使用太多内存,并且在这里查看VM是红鲱鱼。