我们最近从 SQL Server 2008 升级到新服务器并升级到 sql server 2016 (SP1 CU3)
新服务器硬件 hp proliant 580G8,4 插槽英特尔至强 E7 处理器,总共 60 个内核,640GB 内存,8 个英特尔 SSD S3700 Raid 10,本地
环境是一个繁忙的 OLTP 系统,每秒大约有 3K 批请求,主要是插入和较小程度的更新。作为 OLTP 系统,主要有 1 个插入/事务,因此有很多事务提交。有一些用于系统目的的报告查询(队列阅读器、监控等)
问题是日志刷新性能很慢,我们得到了 writelog 等待。我已经测试了 I/O,它可以在 4k 随机写入测试中管理超过 100K iops/sec,顺序写入高达 2500MB/sec
数据库兼容级别 = 130(sql server 2016)
间接检查点 = on,
甚低频计数 = 80-120
处理器 CPU 使用率为 3%-8%,平均为 5%,运行日志备份时最大低于 10%(压缩备份)总信号时间/总等待时间 = 6% - 94% 资源等待时间
内存 PLE 将每秒滴答一次,目前代表 584000 秒,可观察到的页面交换很少(页/秒)
这是我发现的真正问题
“日志刷新/秒”= 1000-2000/秒
“日志刷新等待时间”= 1000-4000 毫秒/秒
“日志刷新写入时间”= 0-1 毫秒/秒,峰值为 10-15 …
performance sql-server transaction-log sql-server-2016 slow-log