加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 从快照恢复后,RDS实例速度非常慢

发布时间:2020-12-13 18:10:09 所属栏目:百科 来源:网络整理
导读:细节: 数据库:Postgres. 版本:9.6 主持人:亚马逊RDS 问题:从快照还原后,数据库速度非常慢. 为什么:AWS称之为“第一次触摸惩罚”.当新恢复的实例可用时,EBS卷附件已完成,但并非所有数据都已从S3迁移到连接的EBS卷.只有在最初“触摸”数据后,RDS才会意识
细节:

数据库:Postgres.
版本:9.6
主持人:亚马逊RDS

问题:从快照还原后,数据库速度非常慢.

为什么:AWS称之为“第一次触摸惩罚”.当新恢复的实例可用时,EBS卷附件已完成,但并非所有数据都已从S3迁移到连接的EBS卷.只有在最初“触摸”数据后,RDS才会意识到数据不在EBS卷上,而是需要从S3中取出数据.这完全破坏了我们的表现.我们也无法使用dd或fio预先触摸数据,因为RDS不允许访问已安装的EBS卷.

我做了什么:联系AWS支持.他们承认这是一个问题,他们正在研究它,唯一的解决方案是从所有表中选择*.

为什么我仍然需要帮助:select *策略确实加快了速度(我从公共模式中选择了所有内容),但没有那么多.所以我读到了postgres stores data to disk.在磁盘上有很多东西,不会被用户定义的表中的简单选择“触及”.

我的问题:仅限于SQL查询/函数而不能直接访问底层磁盘,我可以使用哪些最好的sql语句在磁盘上“触摸”以便将其加载到EBS上来自S3的音量?

我的建议是手动触发真空分析,这将对范围内的每个表进行全表扫描,以便用新的统计数据更新规划器.例如,如果在一个主机中有多个数据库,则可以相当容易地将此??范围仅限于某个模式,所讨论的数据库和Postgres模式可以帮助缩短总时间.

操作相当耗时,我不知道并行化的好方法.还有vacuumdb实用程序,但这只是运行一个带有vacuum语句的查询.

资料来源:几天前我问RDS支持这个问题.

[1] https://www.postgresql.org/docs/9.5/static/sql-vacuum.html

编辑:稍后将在移动设备上重新格式化

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读