我有一个安装了 8GB RAM 的 Windows 2008 x64 服务器。
任务管理器和资源监视器都坚持使用 7.5GB 的 RAM。但是,Processes (Memory Private Bytes) 下的内存列表并没有加起来。我确实检查了所有用户的 Show Processes 并手动添加了我想出的大约 3.5GB RAM 的数字。
我还查看了 SysInternals Process Explorer 的最新副本。并且私有字节或工作集加起来都不会超过大约 3.5GB 的正在使用的 RAM。
这是怎么回事?
======
更新:我重新启动服务器以查看内存利用率会发生什么。启动和常规操作开始后,它的 RAM 使用量为 3GB。18 小时后,它恢复到 6.8GB 的使用量,但没有迹象表明额外的 3.5GB 左右的 RAM 正在使用何处。
以下是资源监视器和任务管理器屏幕截图的链接:
更新 2:好吧,我相信我找到了问题所在。当我从我的 sql server 中分离一个较大的数据库时,显示为“正在使用”的 ram 数量急剧下降。Memory Private Bytes 计数几乎没有移动。所以我猜测 SQL Server 有某种分配内存的方法,它不会真正出现在任何监视器中。
我进一步创建了一个新的数据库文件,然后从我分离的那个文件中传输了所有数据。即使它有相同的数据,并且有相同的事务通过它,使用的内存仍然很低。也许数据库中有一些损坏?我将把它留给 DB 大神,然后去寻找另一个“问题”;)