Take(300)
lambda封顶了它。我该如何避免这种情况?
有谁可以告诉我哪些选项大多数适用于我的情况?
以下是我找到的服务器配置选项:
以下是我在代码选项中找到的内容:
我很清楚,default setting没有受到尊重:
乌鸦/ MemoryCacheLimitMegabytes
RavenDB服务器内部文档缓存的最大大小(MB)。 默认值:系统总内存的50%减去Esent缓存的大小。
在我的服务器上,使用版本2330,没有设置任何自定义配置,Raven.Server.exe占用了95%的可用内存!
编辑:在执行仅重读(并且没有写入)时,我能够在测试环境中重现这一点。
答案 0 :(得分:9)
@Ayende Rahein比我更了解RavenDB,但这对我有用:
Take(300)
太多了。我需要将其更改为Take(128)
。Parallel.ForEach
循环内的查询来处理2.50 GHz单核服务器。我需要指定并行度:Parallel.ForEach(objects, new ParallelOptions { MaxDegreeOfParallelism = 3 }, currentObject => { /* My Query */ });
DocumentStore
个实例上configure the following options:
_store.Conventions.DisableProfiling = true;
_store.Conventions.ShouldCacheRequest = url => false;
_store.DisableAggressiveCaching();
ravenSession.Advanced.Evict(doc); // for each loaded doc
我希望这有助于其他人!
答案 1 :(得分:3)
吉姆, 不要以为这是一个缓存问题。我认为这是你的索引。 你有一个带有多个from子句或SelectMany的map / reduce索引吗?
此外,处理此类问题的最佳位置是ravendb的邮件列表。