有个客户, 服务器的配置巨牛, 24核CPU, 64GB内存, 这样的三台机器组成了一个SharePoint 2010的服务器场.
就是这样牛的配置, 出现了性能问题.
看performance log, 发现CPU, 内存都资源非常充裕, 问题发生的时候request/sec的值也非常的低.
问题发生的频率很低, 一天十次以内.
该application使用claim based authentication.
排错
============
在ULS Log中, 可以发现类似下面的entry
06/01/2011 10:53:58.07 w3wp.exe (0x160C) 0x1668 SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (SPCertificateValidator.Validate). Execution Time=13867.4754854019
06/01/2011 10:54:11.97 w3wp.exe (0x160C) 0x1EF8 SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope (SPCertificateValidator.Validate). Execution Time=13895.0494673804
看起来这个问题是由于证书验证引起的.
解决方案
============
这里的解决方案来自我的同事Nick Huang. 贴在这里. 向Nick致以衷心的感谢.
-
定位到注册表键值 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\SystemCertificates\AuthRoot (如果该键值不存在, 则手动创建一个)
-
创建下面的键值:
Name: DisableRootAutoUpdate
Type: REG_DWORD
Value: 1
- 重启服务器.
进行过了上面的注册表修改后, 问题就可以解决了. 然而, 有些公司定义了组策略, 强制对证书进行检查. 那么我们需要对所有的SharePoint机器上的组策略设置进行修改, 防止错误的配置被再次通过组策略push下来.
方法如下:
1. 运行gpedit.msc
依次点击Computer configuration ->Windows Settings ->Security Settings ->Public Key Policies
2. 选择Certificate Path Validation Settings, 选择Network retrival选项卡. 并进行如下配置. 即, 不要勾选Automatically update certificates in the MS Root Certificate program.
3. 点击OK.
4. 运行命令gpupdate /force
Reference
============
You May Experience Slowness When Using SAML Claims with SharePoint 2010
http://blogs.technet.com/b/speschka/archive/2011/07/13/you-may-experience-slowness-when-using-saml-claims-with-sharepoint-2010.aspx