non*_*ity 5 windows-7 swap pagefile virtual-memory
如何解释 Windows XP 虚拟内存信息中的数字?我实际上只是对以下内容感兴趣:
1) 与“未触及”物理 RAM 中的空闲总大小是多少,因此系统根本不会交换
为了进行实验,我使用 Windows 7 设置了一个虚拟机,运行 Windows XP,内存为 768MB。 为简单起见,虚拟内存设置为“0”(不要使用任何页面文件)。 以下是系统信息和图表:

那么 145MB(大约)是“未触及的”物理 RAM 吗?实际上有一个案例,当这个数字大约为120MB时,XP在任务栏弹出一个小气球,说“虚拟内存不足”。我相信我正在运行的小应用程序应该只请求几 MB。所以 120MB 应该足够了。所以我想知道为什么会这样。
其他数字呢?
785904
145432 (listing here to make a complete list)
128436
29312
23620
5692
25
740252
735132
582MB (the bar for PF Usage)
and the horizontal line for "Page File Usage History"
Run Code Online (Sandbox Code Playgroud)
现在,既然虚拟内存设置为“不使用任何页面文件”,那么 PF Usage 不应该是 0 吗?那么“页面文件使用历史记录”的水平线应该始终保持在 0 吗?谢谢。
更新: 假设页面文件是固定的 256MB 文件大小,并且信息也如上图所示,那么这 10 个数字如何解释?
在这种情况下,如果“可用”下降缓慢,现在仍然是 120MB,那么应该意味着根本没有使用页面文件?
小智 7
如何解释任务管理器的性能选项卡?
首先,让我们谈谈数字。它们分为 4 组,分别标记为 Totals、Commit Charge、Physical Memory 和 Kernel Memory。
Totals:告诉您操作系统中分配了多少句柄、进程和线程。数字是简单的计数器,但单词很难解释,因为它们是基本的编程概念,而基本概念总是很棘手(尝试解释动词“成为”一段时间)。
句柄:内核为程序提供“对象”,例如文件、共享内存部分、注册表项等。程序通过句柄统一操作对象,句柄是对象的临时连接。句柄不是对象;例如,如果一个文件同时打开用于 17 种不同的用途,它将有 17 个不同的句柄与之相连。
进程:进程是正在执行的程序的一个实例。如果您运行 Explorer 3 次,则将有 3 个进程在运行。看到不同?程序是持续存在的东西——你昨天的程序就是你今天的程序(除非你做了什么!)。过程来来去去。
线程:进程中实际运行的内容。每个进程由一个或多个线程组成,由程序员决定。线程以或多或少独立的方式执行。如果你有足够多的处理器,它们真的可以同时执行。否则,它们似乎只是同时运行。
这些数字都没有“正确”的值。大多数情况下,如果它们开始无限制地增加,那么是时候怀疑出了什么问题。例如,程序可能会因未能关闭文件而导致“句柄泄漏”(尽管如果您终止该进程,则操作系统将关闭其所有句柄;这不是 DOS)。
提交费用:这衡量系统中“提交的虚拟内存”的数量(背景请参见VM 常见问题解答)。这是进程请求的所有内存,这些内存不受某个命名文件的支持(例如,程序指令存储在 program.exe 文件中,因此不计入提交费用)。看待这一点的一种方法是系统有一定的虚拟内存预算,每个程序请求都根据该预算收费。
该总承诺费是目前使用中值; 限制是页面文件大小和原则上可用于程序的物理内存的总和(即,不计算所有永久驻留的部分)。
在山顶简直是开机以来记录的最高值。
物理内存:这很容易。总数是操作系统检测到的内存量,可用量几乎是您所期望的。所谓的系统缓存大小实际上是系统“工作集”的大小(即系统进程使用的物理内存量,pid 4,这是一个连接到内核并代表执行线程的进程内核和设备驱动程序)。系统文件缓存临时保存文件内容,以加快系统性能,但可能是系统进程中最大的内存消耗者,因此这是一个合理的近似值。
内核内存:告诉您内核和设备驱动程序正在使用多少内存。我相信(但我在这里可能是错的)这里的数字是虚拟内存计数。对于非分页内存,没有区别:虚拟内存始终驻留在物理内存中。对于分页内存,大小是虚拟的;物理内存占用可能更少。
现在,图表和仪表。尽管有标题,PF Usage和Page File Usage History显示不测量 Page File Usage。他们衡量总提交费用。总提交计数与页面文件使用有关;如果所有可能写入页面文件的内容实际上已写入页面文件,则它是您将使用多少页面文件。在 Windows 2000 上,同样的显示被称为内存使用,导致人们认为他们测量了物理内存使用。那也不对。
无论如何,您对自称为“任务管理器”的程序有何期望?操作系统内核中没有所谓的“任务”——操作系统有“进程”和“线程”。DOS 有“任务”。英特尔硬件具有“任务”结构,但操作系统不使用它们,因为它自己执行速度更快。(最近出现了一个名为“任务调度器”的用户态程序,但内核对这些任务一无所知,而且,这是“任务”的完全不同的用法)。
在CPU使用率和CPU使用记录显示做实际上是衡量CPU的使用!也就是说,它们统计除系统空闲循环中在非中断级别使用的 CPU 使用量之外的所有 CPU 使用量。因此,它很好地说明了您的系统到底有多忙。
在多处理器系统上,我认为总数是根据一个 CPU 的能力给出的(它们总是相同的 CPU)。因此,双 CPU 系统有“200%”可用。如果您愿意,可以为每个 CPU 显示一张图表。如果有人愿意寄给我一个双 CPU 系统,我会验证这些说法。
通常的绿线给出了 CPU 的总使用量。您可以选择添加一条红线,显示在内核模式下花费的时间;这有时对于问题隔离很方便,或者它看起来更好。使用“视图”菜单中的“显示内核时间”。
底部状态行重复 CPU 使用、提交费用和进程总数。
| 归档时间: |
|
| 查看次数: |
1467 次 |
| 最近记录: |