【发布时间】:2013-04-14 23:25:56
【问题描述】:
- 我的应用程序包含一些返回大型结果集的查询(尽管我使用
Take(300)lambda 对其进行了封顶。 - 在使用高峰期,我看到 Raven.Server.exe 消耗了异常大量的 RAM。
- 事实上,在这些时间里,Raven.Server.exe 可以耗尽我服务器的可用 RAM。
我怎样才能避免这种情况?
- 经过几次 Google 搜索后,我可以看到其他人在我之前遇到过此错误。
- 但 RavenDB 在过去几年中不断发展,有许多配置和代码选项可以限制 Raven.Server.exe 可以消耗的 RAM 量并完全禁用缓存。
谁能告诉我哪些选项最适用于我的情况?
这是我找到的服务器配置选项:
这是我找到的代码选项:
我很清楚这个default setting 没有得到尊重:
Raven/MemoryCacheLimitMegabytes
RavenDB 服务器内部文档缓存的最大大小(MB)。 默认值:系统总内存减去 Esent 缓存大小的 50%。
在我的服务器上,使用 build 2330,没有设置任何自定义配置,Raven.Server.exe 占用了 95% 的可用 RAM!
编辑:当执行仅重度读取(且不写入)时,我能够在测试环境中重现此问题。
【问题讨论】:
-
您说 RavenDB 使用了 95% 的可用 RAM,就好像这是一件坏事。它是一个服务器,它的目的是尽可能多地使用资源。
-
@ChrisMarisic:是的。这是一件好事,除非 RavenDB 用尽您服务器的可用 RAM。
标签: caching task-parallel-library ravendb