自定义SharePoint页面后的NTLM验证的性能问题
最近在做一项目,发现的一个很奇怪的性能问题。自定义Master Page后,即使什么也不改,比SharePoint默认页面的性能相比,有极大的降低。
测试了一系列场景,诡异的事情就不一一赘述了。
一些典型表现为:
1. IIS Failed Request Log表现为很多大时间(>3s)的页面和页面资源文件,这些看起来都是随机的,无规律的。
其中Log显示以下错误,
- 404错误
- NTLM认证耗费很长时间(>2s)
- 页面和页面资源文件加载时间过长,(>4s)
2. ULS Log表现出来处理时间正常(100ms)左右。
最后找了微软Premier Support,抓了N多Log,Dump,给出了一个神奇的KB。
You are intermittently prompted for credentials or experience time-outs when you connect to Authenticated Services
http://support.microsoft.com/kb/975363
- 启动注册表编辑器。
- 找到以下注册表子项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters
- 创建以下注册表项:
名称: MaxConcurrentApi
类型: REG_DWORD
值:将该值设置为较大的数字,您测试 (任何编号大于默认值)。 - 在命令提示符下运行 net stop netlogon然后再运行 net start netlogon.
修改并发为40(根据机器性能自己调整)后,压力测试结果有了显著提升。
24Core的安腾,192G内存的机器,居然能够把CPU压到50%多,RPS由40提升到150+,页面响应时间由平均5s降低到1-2秒左右。
微软的作弊工具太神奇了。
另外,为什么默认的页面就不会出现这个问题呢?什么地方有神奇之处?这个还是不解之谜。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南