Hello All,
We are experiencing higher I/O latencies more than 900 ms after we upgraded to SQL 2016. We have observed such latency values for the tempdb, during the performance tests.
However when we compare the latencies with SQL Server 2014, we see values around 5 ms after the completion of the performance test for our OTLP application.
One thing observed is that tempdb is having a target_recovery_time_in_seconds set to 60 (default of SQL 2016), meaning it is using indirect checkpointing mechanism. Whereas for our application database the target_recovery_time_in_seconds is set to 0, meaning it is using automatic checkpoint mechanism.
Also checked the Perfmon values for the Checkpoints/sec, and the average is ~500, and the highest being 23K.
Ours is a very tempdb intensive application, and any pointers on how to reduce the I/O latencies would help.
Since the 1118 trace flag is enabled by default in SQL 2016, we are hoping that should help in performance and not a reason for the current degradation.
Another observation is that the I/O latency values for the application database is around 100 ms and is not so bad as of tempdb.
Thanks, Kumar