今天下午15:30~16:40期間,在添加新博文時再次出現"Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding."的錯誤!再次給大家造成麻煩!當時差點崩潰了,還好在崩潰前終於找到了問題的真正原因!
在昨天對這個問題的處理中,我們已經將存放博文內容的CNBlogsText數據庫的日志文件移到了獨立的磁盤分區中。於是,今天問題出現時,我們可以更好地鎖定問題,確認了磁盤IO高是CNBlogsText數據庫的日志寫入操作引起的。出現問題時,數據庫服務器所在的雲服務器IOPS達600多。600多的IOPS對於物理服務器來說小菜一碟,所以之前我們用自己的服務器時,從未遇過這個問題;但是對於雲服務器,這么高的IOPS已經無法承受,造成數據庫寫入嚴重延遲,於是引發"Timeout expired."錯誤。
如何解決這個問題呢?
目前臨時解決方法是將日志恢復模式由Full改為Simple,這樣會大量減少日志的寫入操作。當時這樣操作后,磁盤IO立即降了下來,"Timeout expired."錯誤立即消失。
根本解決方法是將數據庫服務器遷移至RDS,目前正在進行遷移至RDS的測試與准備工作。
多次出現這個問題,給那么多人帶來麻煩,我們內心的難受無法用語言去表達,我們知道竭盡全力解決問題才是對大家最好的交代!感謝大家的理解與寬容!