我们的RDS实例遇到了问题。
RDS停止运行。 RDS处于“绿色”状态(在AWS控制台上),但我们无法连接到RDS实例。
我们发现以下错误的云日志:
2018-03-07 8:52:31 47886953160896 [注意] InnoDB:从doublewrite缓冲区恢复可能的半写数据页面... InnoDB:设置innodb_force_recovery以忽略此错误。
2018-03-07 8:52:32 47886953160896 [错误]插件'InnoDB'init函数返回错误。 2018-03-07 8:53:46 47508779897024 [注意] InnoDB:从doublewrite缓冲区恢复可能的半写数据页面... InnoDB:设置innodb_force_recovery忽略此错误。 2018-03-07 8:53:46 47508779897024 [错误]插件'InnoDB'init函数返回错误。
当我们尝试重启RDS实例时,需要花费近2个小时才能重启。重新启动其工作正常后!。
有人可以帮助我们了解此事件的根本原因。
答案 0 :(得分:0)
由于t2.small提供2G的RAM。但是您可能知道,大多数数据库引擎倾向于使用75%的内存用于缓存目的,例如查询,临时表,表扫描以使事情变得更快。
对于我们的Maria DB引擎,以下参数默认设置为低于预优化值:
除此之外,操作系统和RDS进程还将使用一定量的RAM来执行自己的操作。因此总结一下,DB引擎使用大约1.6 Gb左右,并且在取出这些值之后将获得的实际可用内存innodb_buffer_pool_size,key_buffer_size,innodb_log_buffer_size将大约为400 MB。
整体可用内存减少~137MB。因此,交换使用率在同一时间段内大幅增加至约152MB。
FreeableMemory非常低,交换利用率很高。此外,由于内存压力(内存不足和交换使用率高),RDS内部监控系统无法继续进行主机通信,从而导致基础主机更换。