先說一下硬體資訊
服務器2棵4核心8執行緒處理器,128G記憶體
現在資料有3個庫,資料庫檔案比較 大,每個資料1T左右。每秒時在線500左右。
有很多表資料量都在1億-2億條,但因為資料結構簡單,基本上存盤程序操作都200毫秒之內
現在不定期出現FlushCache提示,然后服務器都會卡一會。可能幾分鐘。
日志如下:
FlushCache: cleaned up 1808 bufs with 1153 writes in 235582 ms (avoided 257 new dirty bufs) for db 20:0
average throughput: 0.06 MB/sec, I/O saturation: 7999, context switches 16454
last target outstanding: 80, avgWriteLatency 15
uj5u.com熱心網友回復:
頂,不要沉呀!uj5u.com熱心網友回復:
看來MSSQL用的人真不多。uj5u.com熱心網友回復:
不是用的人不多,是你這個數量級的用MSSQL不多uj5u.com熱心網友回復:
其實大多時間還是沒什么問題的。我使用MSSQL 2012 ALWAYSON 進行讀寫分離。
就是偶爾出現一下問題。覺得比較奇怪。
uj5u.com熱心網友回復:
請問解決了嗎?我也遇到這種問題了?uj5u.com熱心網友回復:
關注,幫頂一下uj5u.com熱心網友回復:
因為你的服務器太“忙”了。本來更新的資料先快取在記憶體中,滯后寫入硬碟,可以提高更新的速度。
但是你的服務器一直保持著“每秒時在線500左右”的繁忙狀態,寫快取的速度遠大于寫硬碟的速度,等快取滿的時候只能暫停更新,專門寫硬碟以清出可以的快取空間。
這基本上除了改用固態硬碟等方式加快硬碟寫入速度,沒有更好的方法了。
uj5u.com熱心網友回復:
可嘗試配置恢復間隔服務器配置選項
https://technet.microsoft.com/zh-cn/library/ms191154.aspx
資料庫應該是完整模式吧?定期備份日志,控制好日志檔案大小
uj5u.com熱心網友回復:
我的庫每天晚上0點-1點也是這個狀況,awayson環境2019-11-01 00:00:44.40 spid53s This instance of SQL Server has been using a process ID of 1788 since 2019/5/15 20:27:31 (local) 2019/5/15 12:27:31 (UTC). This is an informational message only; no user action is required.
2019-11-01 00:40:52.08 spid64s FlushCache: cleaned up 256980 bufs with 189811 writes in 115853 ms (avoided 160 new dirty bufs) for db 7:0
2019-11-01 00:40:52.08 spid64s average writes per second: 1638.38 writes/sec
average throughput: 17.32 MB/sec, I/O saturation: 119867, context switches 201407
2019-11-01 00:40:52.08 spid64s last target outstanding: 8400, avgWriteLatency 0
2019-11-01 00:43:37.92 spid64s FlushCache: cleaned up 218858 bufs with 167945 writes in 116397 ms (avoided 55 new dirty bufs) for db 7:0
2019-11-01 00:43:37.92 spid64s average writes per second: 1442.86 writes/sec
average throughput: 14.68 MB/sec, I/O saturation: 129786, context switches 233082
2019-11-01 00:43:37.92 spid64s last target outstanding: 48, avgWriteLatency 47
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/118953.html
標籤:疑難問題
上一篇:非常適合大學生看的sql書籍
下一篇:關于高位鍵出
