![Windows 不释放缓存文件和应用程序的缓存内存](https://linux22.com/image/706811/Windows%20%E4%B8%8D%E9%87%8A%E6%94%BE%E7%BC%93%E5%AD%98%E6%96%87%E4%BB%B6%E5%92%8C%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E7%BC%93%E5%AD%98%E5%86%85%E5%AD%98.png)
在 Windows 2008R2 服务器上,我具有以下属性:
- Oracle 10G
- Lotus Notes/Domino 5
- 通过网络驱动器访问的大量 PDF/DOC 文件
服务器时不时地会停止运行,解决这个问题的唯一方法是重新启动服务(尤其是 Lotus Notes)
该服务器有 16GB 的 RAM,查看内存使用情况,我可以看到在大多数情况下,只有 4GB 到 5GB 的内存被积极使用。其余内存被缓存。请参阅下面的 PerfMon 屏幕截图:
此外,我还使用了本文推荐的一款名为 RamMap 的工具 https://support.microsoft.com/en-us/help/976618/you-experience-performance-issues-in-applications-and-services-when-th
以下是 RamMap 的几张截图 - 按“待机”内存排序
从上面的内容来看,我可以看到用于“映射文件”的“待机”内存量令人担忧(11GB)。
问题:
1 - 我是否正确认为,被缓存的内存是被缓存以供以后使用的文件,而不一定是应用程序(服务器处理数百万个 PDF 文件)。
2 - Windows 未释放此缓存的可能原因是什么?据 Google 称,这是 Win2008 早期版本中存在的问题,但 Win2008R2 应该不存在这个问题。
3 - 文件摘要选项卡中显示的一些文件可能可以通过修改应用程序来解决。例如,Lotus Notes 日志文件的大小(文件摘要屏幕截图中的第 2 项)。但我不确定如果我修复列表中显示的文件,它是否会解决问题。释放的内存不会被其他东西使用吗?例如缓存的 PDF 文件
4 - 显示的缓存文件大部分是 Lotus Notes 使用的文件。有没有办法限制 Lotus Notes 只使用一定量的内存?是 Lotus Notes 还是 Windows 决定缓存文件?
编辑
我没有提到这如何导致问题,所以我会尝试举个例子。用户执行的主要操作是附加大型文档。这些文档通过 Web 前端附加,然后进行处理并随后保存到文件系统。
当系统以正常速度运行时,可以在几分钟内附加文档。一旦“可用”(参见 perfMon 屏幕截图)内存量降至 <20MB,则可能需要20分钟附加一个 10MB 的文档。解决此问题的唯一方法是重新启动应用程序。我猜想,即使有新的请求需要使用内存(例如附加新文件),系统也不会释放缓存
在某些情况下,可用内存量减少到 0,并且我看到以下错误:
22/03/2017 06:59:59 HTTP Web Server: Lotus Notes Exception - Insufficient memory. [/IES/iesMain.nsf/iesDoc?openForm&type=ref&template=US-510k]
“22/03/2017 16:09:19 HTTP Server: Error - Memory allocation error, out of system memory’
编辑2
我还忘了说一下,服务器是虚拟机,不是专用服务器。我怀疑这也可能会影响性能。