【问题标题】:Experienced problems with our RDS instance我们的 RDS 实例遇到的问题
【发布时间】:2018-03-23 22:22:38
【问题描述】:

我们的 RDS 实例出现问题。

RDS 停止运行。 RDS 处于“绿色”状态(在 AWS 控制台上)但我们无法连接到 RDS 实例。

Cloud Logs 我们发现以下错误:

2018-03-07 8:52:31 47886953160896 [注意] InnoDB:从双写缓冲区恢复可能的半写入数据页... InnoDB:设置 innodb_force_recovery 以忽略此错误。

2018-03-07 8:52:32 47886953160896 [错误] 插件“InnoDB”初始化函数返回错误。 2018-03-07 8:53:46 47508779897024 [注意] InnoDB:从双写缓冲区恢复可能的半写数据页... InnoDB:设置 innodb_force_recovery 以忽略此错误。 2018-03-07 8:53:46 47508779897024 [错误] 插件“InnoDB”初始化函数返回错误。

当我们尝试重启 RDS 实例时,它需要将近 2 个小时才能重启。重新启动后再次正常工作!。

谁能帮助我们了解这起事件的根本原因。

【问题讨论】:

  • 在不了解您的工作负载或实例大小的情况下很难判断。最好的猜测是你需要更多的内存或更小的缓冲池。也许两者兼而有之。
  • [Note] InnoDB: Restoring possible half-written data pages from the doublewrite buffer... 该消息是关于尝试从问题中恢复...[ERROR] Plugin 'InnoDB' init function returned error. ...但它没有成功恢复。实际问题会在日志中更早出现。

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


【解决方案1】:

由于 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)

除此之外,操作系统和 RDS 进程还将使用一定数量的 RAM 来执行它们自己的操作。因此,总而言之,DB 引擎大约使用了 1.6 Gb,在取出这些值 innodb_buffer_pool_size、key_buffer_size、innodb_log_buffer_size 后将获得的实际可用内存约为 400 MB。

总体而言,您的可用内存减少了约 137MB。结果,Swap Usage 在同一时间段内急剧增加至大约 152MB。

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

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 2018-10-24
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-11-23
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多