- 我的应用程序包含一些返回大型结果集的查询(尽管我已经用
Take(300)
lambda. - 在使用高峰期,我看到 Raven.Server.exe 消耗异常大量的 RAM。
- 事实上,在这些时间里,Raven.Server.exe 会耗尽我服务器的可用 RAM。
我怎样才能避免这种情况?
- 经过几次谷歌搜索,我可以看到其他人在我之前遇到过这个错误。
- 但 RavenDB 在过去几年中不断发展,有许多配置和代码选项可以限制 Raven.Server.exe 可以消耗的 RAM 量并完全禁用缓存。
谁能告诉我哪些选项最适合我的情况?
这是我发现的服务器配置选项:
这是我发现的代码选项:
我很清楚,这个默认设置没有得到尊重:
Raven/MemoryCacheLimitMegabytes
RavenDB 服务器内部文档缓存的最大大小(MB)。 默认值:总系统内存的 50%减去 Esent 缓存的大小。
在我的服务器上,使用 build 2330,没有设置任何自定义配置,Raven.Server.exe 消耗了 95% 的可用 RAM!
编辑:当只执行大量读取(而不是写入)时,我能够在测试环境中重现这一点。