Mar*_*man 4 sql-server sharepoint sql-server-2008-r2
我有一个 8 核(576 个最大工作线程)的 SQL Server 2008 R2 SP3 标准版 64 位实例,32 GB RAM(MaxMem = 28000)。它是 SharePoint 安装的数据存储,具有 218 个数据库。
它收到了数十条“SQL Server 失败,错误代码为 0xc0000000,无法生成线程来处理新的登录或连接。” 每天错误,但没有其他错误。我发现 MAXDOP = 0,这对 SharePoint 不利。我逐渐(数周后)将 MAXDOP 降低到 1。当我这样做时,这些错误的频率在大多数日子里都降到了零。但我还是会偶尔看到他们。
sys.dm_os_wait_stats 关于 THREADPOOL 等待是这样说的:
waiting_tasks_count wait_time_ms max_wait_time_ms signal_wait_time_ms
26149 474516 4428 9
Run Code Online (Sandbox Code Playgroud)
服务器上次重启时间为 2018 年 3 月 25 日下午 5:55,当前服务器时间为 2018 年 4 月 20 日晚上 10:07。除了在保存 tempdb 文件的驱动器上使用连接和顺序提示以及慢速存储写入之外,sp_Blitz 没有发现任何有趣的东西。
这是在私有云中的虚拟机上。增加 CPU 的数量会非常昂贵,虽然它被大量使用,但 CPU 使用率似乎不是问题。在这种情况下,增加最大工作线程数是否是一个合理的尝试,我应该不理会它并忍受偶尔的 17189 错误,还是有其他选择?
增加 MWT 会导致SOS_SCHEDULER_YIELD等待时间增加。不是世界末日,而是把它想象成在老师的课堂上添加一群孩子。突然之间,每个孩子都更难获得关注。
当一个进程用完它的 4ms时间段时,它前面可能会有更多的线程等待进入 CPU。很难说这种权衡是否会导致性能变差。
您可以尝试逐步增加 MWT a。
请注意,核心数翻倍并不会使 MWT 翻倍,并且 1 个核心与 4 个核心获得的数字相同?
这就像一个标志,什么的。
等式是:512 + ((logical CPUs - 4) * 16),这意味着在 10 个内核时,您将拥有 608 个线程,而在 12 个内核时,您将拥有 640 个线程。
这些都是相当安全的增量尝试,但如果没有与 Microsoft 的支持电话,我不会考虑这些。
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |