Windows Server 上的内存使用情况

Windows Server 上的内存使用情况

我们的服务器可用内存总是很低。然而,顶级进程只占用了我们服务器上可用内存的一部分(10 GB记忆)。

我运行tasklist并获取了所有进程的列表,并计算了它们使用的内存总量。总内存使用量为6GB,大约1GB内存“可用”。

除非我遗漏了什么,否则这意味着大约 3GB 的短缺(10GB 总内存 - 6GB 已使用 - 1GB“可用”)。

我想知道发生了什么。“可用”内存时不时会降至 0,这时我们就会遇到速度变慢的情况。

答案1

内存管理已经是一个复杂的话题,不幸的是,微软几乎在每次 Windows 版本中都改变了有关不同类型内存的确切定义和术语。所以相信我,你不是唯一对此感到困惑的人。

当您使用 tasklist 时,tasklist 会向您显示工作集分配给每个进程。工作集是最近接触的身体的分配给进程的 RAM 页,并且这并不占全部虚拟的进程可能正在使用的内存(从某种意义上说,进程只使用虚拟内存,因为物理内存被抽象到更大的虚拟内存池中并与页面文件等其他虚拟内存源相结合。)它也不考虑文件缓存等。

您的系统上不应该有太多的“可用”内存。那是浪费的 RAM,实际上什么也没做。当没有需要更多内存的进程时,Windows 会使用可用内存来缓存文件,直到可用内存降至零或接近零。

但是该缓存可以非常快速地重新分配给一个进程,此时它将成为该进程虚拟字节的一部分并从可用内存中扣除。

至于速度变慢,你可能遇到很多问题。当 Windows 的可用内存不足时,它会开始消耗(或削减)进程工作集,这会导致明显的速度变慢。

当您谈论这些类型的内存时,使用性能监视器中的描述可获得最准确的描述。(与任务管理器相反,任务管理器对某些术语的使用存在冲突/混淆。)

最后,我强烈建议你观看这个由两部分组成的视频系列:http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/WCL405

相关内容