雲計算之路-阿里雲上: RDS實例CPU跑滿引發的故障


今天上午 10: 40 左右,我們所使用的阿里雲 RDS 實例的 CPU 突然飆高到近 100% ,造成大量數據庫查詢操作緩慢、超時,在這個惡劣條件下大量 memcached 緩存無法建立,這樣的雪上加霜讓 Web 服務器的 CPU 跟着不堪重負,於是要么訪問緩慢,要么直接 503 。。。造成網站無法正常訪問,由此給您帶來了很大的麻煩,請您諒解。

問題非常奇怪,昨天同樣的時間段,RDS CPU 占用卻少很多,平時 RDS CPU 的占用通常都在 60% 以下,而今天我們網站的訪問量並沒有明顯的突增。

面對這個突發故障,我們實在找不出可能的線索。在前幾年使用阿里雲 RDS 曾經遇到過很少幾次類似數據庫訪問突發緩慢的問題,當時都通過主備切換神奇地解決了。這次,我們最終還是采用了主備切換的方法,在 11:20 左右啟動了主備切換。

主備切換后,CPU 很快就降了下來,但由於 SQL Server 預熱需要一定的時間(建立緩存),所以在切換后的一段時間,訪問網站依然緩慢,直到 11:40 左右才恢復正常。

我們所使用的 RDS 實例規格是 SQL Server 2008 R2 ,20CPU ,12G內存,6000 IOPS ,一直沒有升級到 Server Server 2012 或 2016 ,就是因為阿里雲只有 2008 R2 才提供了高可用版(支持主備切換),而 2012 與 2016 只有基礎版。而使用高可用版,在出現突發故障進行主備切換是一個簡單有效的方式。

【更新】

我們在故障恢復后,開啟了 RDS 的 SQL 審計功能,正在根據審計情況對查詢與索引進行優化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM