云计算之路-阿里云上:数据库写入超时的问题终于真相大白
今天下午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的测试与准备工作。
多次出现这个问题,给那么多人带来麻烦,我们内心的难受无法用语言去表达,我们知道竭尽全力解决问题才是对大家最好的交代!感谢大家的理解与宽容!