我们的RDS实例遇到了问题

时间:2018-03-08 09:57:57

标签: amazon-web-services amazon-rds failover

我们的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个小时才能重启。重新启动其工作正常后!。

有人可以帮助我们了解此事件的根本原因。

1 个答案:

答案 0 :(得分:0)

由于t2.small提供2G的RAM。但是您可能知道,大多数数据库引擎倾向于使用75%的内存用于缓存目的,例如查询,临时表,表扫描以使事情变得更快。

对于我们的Maria DB引擎,以下参数默认设置为低于预优化值:

  1. innodb_buffer_pool_size(数据库实例大小* 3/4 = 1.5 Gb)
  2. key_buffer_size(16777216 = 16.7 Mb)
  3. innodb_log_buffer_size(8388608 = 8.3Mb)
  4. 除此之外,操作系统和RDS进程还将使用一定量的RAM来执行自己的操作。因此总结一下,DB引擎使用大约1.6 Gb左右,并且在取出这些值之后将获得的实际可用内存innodb_buffer_pool_size,key_buffer_size,innodb_log_buffer_size将大约为400 MB。

    整体可用内存减少~137MB。因此,交换使用率在同一时间段内大幅增加至约152MB。

    FreeableMemory非常低,交换利用率很高。此外,由于内存压力(内存不足和交换使用率高),RDS内部监控系统无法继续进行主机通信,从而导致基础主机更换