我有一个运行有点慢的 Windows 2003 服务器,其中提交费用和页面文件使用量不断增加,直到我最终重新启动。为了解决这个问题,我需要找出消耗所有内存的原因,这就是最大的谜团所在。
任务管理器的当前统计数据:
Physical Memory (K): 2096400
Commit Charge (K): 5364848
Page file usage: 5.11 GB
Run Code Online (Sandbox Code Playgroud)
好的,让我们打开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
Run Code Online (Sandbox Code Playgroud)
我是否从根本上误解了工具报告的内容?我一直认为操作系统实际上提交的内存比进程映射的全部虚拟内存少得多,假设它实际上不会使用那么多,并且在这里查看 VM 是一条红鲱鱼。