【发布时间】:2015-01-20 15:56:06
【问题描述】:
我的 AdLds / Adam 实例有一个奇怪的行为。
每 50 秒左右,查询需要更长的时间来执行(2.36 秒而不是 0.1 秒) 我编写了一个简单的测试程序来使用相同的简单查询来查询我的本地实例,我得到了以下屏幕截图。
无论我从哪台计算机查询或查询到哪台计算机,我都会得到相同的结果。
知道为什么吗?
我的查询代码:
private const string Cx = "LDAP://server:389/CN=Por,DC=XXX,DC=int";
DirectoryEntry de = new DirectoryEntry(Cx) { Username = "username", Password = "password" };
DirectorySearcher ds = new DirectorySearcher(de)
{
Filter = "(cn=randomUsername)",
SearchScope = SearchScope.OneLevel
};
SearchResult sr = ds.FindOne();
编辑 如果我使用 UserPrincipal,同样的问题。它似乎与配置相关......
编辑
我已在 ADAM 实例上启用所有诊断以完全详细,但没有弹出错误。 2s 调用时没有来自垃圾收集的消息。
我已将以下内容添加到注册表中,但也没有任何更改:
- GC 强制重新发现窗口(秒)
- GC 强制等待已过期(秒)
- GC 荣誉失败窗口(秒)
编辑
我已经看到了修补程序 ADAM service runs slowly or stops responding during garbage collection,但它只适用于 W2003 而不是 W2008R2 / W7
【问题讨论】:
-
它有多大?几岁?磁盘碎片了吗?你用过 MS compact 实用程序吗?
-
这是全新的安装,数据很少。没有 ms 紧凑。
-
是的 - 无需压缩或碎片整理。您是否尝试过与 localhost 相同的操作,以便您可以考虑我们每 50 秒发生的一些网络事件?
-
我已经尝试过 A 查询 B、C 查询 B、A 查询 D 甚至在本地实例上。结果相同。
-
@Vincent 这很可能是垃圾收集器在起作用。“磁盘碎片”与它无关。
标签: c# active-directory ldap adam adlds