一次HIS系統卡頓原因排查過程分享
資料庫伺服器總記憶體172G, 分配到資料庫記憶體150G,當前使用記憶體數量112G,記憶體使用<分配記憶體,記憶體充足。
資料庫指標引數頁預期壽命(Page Life Expectancy ) 20秒左右,遠低於應有的頁面預期壽命11250s(150G/4G*300s=11250s)。
一個小tip:Page Life Expectancy 指記憶體頁面在記憶體中停留的平均時間,是記憶體壓力判斷的一個重要參考值。 過去系統受32bit限制,記憶體只有4G,Page Life Expectancy的頁預期壽命是300s。現在伺服器系統是64bit,伺服器記憶體遠大於4G,頁面預期壽命計算公式是伺服器記憶體大小/4G*300秒。比如服務記憶體是64G,分配給Sql Server最大記憶體(上述Max Server Memory)是60G,那麼PLE的參考值就是60/4*300=4500S,大概是75分鐘,也就是說,最低限度是每75分鐘,記憶體中的資料跟磁碟做一次完整的交換。
(指標引數頁20s左右?)
SQL Server的指標引數每秒超時鎖請求數(Lock Timeouts/sec_rate) 超出閾值。鎖等待時間是一個程式花費在等待另一個程式釋放鎖的時間。每秒超時鎖請求數理想狀態0,從下圖可一看到超時鎖偶爾會達到1000個以上,說明SQL Server資料庫有資源瓶頸。
業務卡慢時出現磁碟響應值和磁碟佇列值都很高。正常磁碟響應應該在50毫秒以內、磁碟佇列在1以內。
當前資料庫伺服器的版本是SQL SERVER 2012 SP1商業智慧版,伺服器物理CPU是32核,但商業智慧版最多隻能用到16核CPU。
透過資料庫伺服器指標引數分析可見:
導致記憶體和磁碟之間的資料頁面交換非常頻繁,導致IO讀寫量增大。
歸根到底要看SQL語句是不是能夠進一步最佳化。儘量減少造成大量的物理讀寫。
1、檢查磁碟效能響應時間高的原因,伺服器本身磁碟是否存在其它大的讀寫,比如CDP磁碟映象。
2、檢查伺服器虛擬排程是否正常,排查記憶體快取問題。
3、升級資料庫伺服器序列號為Microsoft SQL Server Enterprise: Core-based Licensing (64-bit),保證資料庫伺服器能用到全部CPU。
4、將tempdb資料庫移到D盤,當前資料庫檔案存在C盤,可用空間不多,會存在異常導致磁碟用完的風險。
5、最佳化SQL SERVER查詢慢的指令碼,連結伺服器大表查詢增加查詢限制。介面查詢建議改成標準的介面不要直接連結伺服器查詢檢視。
宣告:文案&圖片為原創內容,轉載請註明。
聯絡我們:電話 400-828-1855。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70013542/viewspace-2918849/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 記一次Linux系統被入侵的排查過程(一)Linux
- 線上的一次fullgc排查過程GC
- 記一次FreeBSD系統中mysql服務異常的排查過程MySql
- 記一次OOM問題排查過程OOM
- 一次奇怪的的bug排查過程
- 排查Mysql突然變慢的一次過程MySql
- 一次線上介面超時的排查過程
- 記錄一次 MySQL 死鎖排查過程MySql
- his系統ppt
- 記一次系統演變過程
- 一次系統升級的過程
- 記一次"記憶體洩露"排查過程記憶體洩露
- 一次線上問題的排查解決過程
- 一次IOS通知推送問題排查全過程iOS
- 一次JVM GC長暫停的排查過程JVMGC
- 一次JVM GC長暫停的排查過程!JVMGC
- 記錄一次線上OOM情況排查過程OOM
- 一次FGC導致CPU飆高的排查過程GC
- 一次ygc越來越慢的問題排查過程GC
- 記錄一次記憶體洩漏排查過程記憶體
- 記一次線上崩潰問題的排查過程
- 一次Linux系統被***的分析過程Linux
- 分享一次排查CLOSE_WAIT過多的經驗AI
- tikv oom排查過程OOM
- 誰用J2EE開發過HIS系統?
- 記一次排查Flutter中預期外rebuild的過程FlutterRebuild
- 解Bug之路-記一次儲存故障的排查過程
- 記一次堆外記憶體洩漏排查過程記憶體
- 雲HIS系統原始碼原始碼
- 記一次 .NET 某醫院HIS系統 CPU爆高分析
- [分享]一次Jdon環境搭建全過程
- 一次StackOverflowError排查,原因竟然和Dubbo有關!Error
- 記一次使用windbg排查記憶體洩漏的過程記憶體
- 記錄一次Flink作業異常的排查過程
- 一次 Java 記憶體洩漏排查過程,漲姿勢Java記憶體
- 一次排查Java專案記憶體洩漏的過程Java記憶體
- 記錄一次資料庫CPU被打滿的排查過程資料庫
- 記錄一次排查解決伺服器卡死的過程伺服器