一、 常见的CPU报错
遇到这些错误时,SqlServer并发响应速度会受到影响,甚至整个服务响应都非常慢,影响业务。
1. 17883报错——某个scheduler可能有问题
如果sqlserver检查发现某个scheduler上有个task运行超过60s都没有做过Yielding,sqlserver就会在错误日志中打印有个17883错误。如果是启动以来第一次遇到17883错误,sqlserver还会生成一个mini-dump。
2. 17884和17888报错——所有scheduler都可能有问题
可能原因:
所有scheduler都遇到17883错误
所有worker都被某个关键资源阻塞
所有worker都在运行一个很长时间才能返回的语句
由于17884和17888报错是多个scheduler上发生的问题,对sqlserver影响会比17883更大,通常可以从sys.processes视图看出端倪。
3. 内存转储文件
当sqlserver发生重大意外时(服务无响应、崩溃等),会自动产生一个或几个内存转储文件(dump),通常需要安装WinDbg工具进行分析。
所谓的dump就是当时内存状态的一个快照。如果不做任何配置,里面就是一些0101的二进制值,为了能将某个内存地址和某个函数或变量对应起来,还需要一个叫做符号表的东西。
<