【问题标题】:Amazon Redshift at 100% disk usage due to VACUUM query由于 VACUUM 查询,Amazon Redshift 的磁盘使用率为 100%
【发布时间】:2014-09-06 23:49:25
【问题描述】:

阅读 Amazon Redshift 文档,我在某个 400GB 的表上运行了一个 VACUUM,该表以前从未被清理过,以试图提高查询性能。 不幸的是,VACUUM 导致表增长到 1.7TB (!!),并使 Redshift 的磁盘使用率达到 100%。 然后,我尝试通过在超级用户队列中运行 CANCEL 查询来停止 VACUUM(您通过运行“set query_group='superuser';”来输入它)但是虽然查询没有引发错误,但这对vaccum 查询一直在运行。

我能做什么?

【问题讨论】:

    标签: amazon-web-services amazon-redshift vacuum


    【解决方案1】:

    显然,目前您无能为力。 我与亚马逊支持通了一个小时的电话,他们没有停止真空操作的工具。 他们打开了一张关于 CANCEL 查询的票,它默默地不处理 VACUUM 查询。

    他们建议我拍摄集群的快照(如果您已经制作了以前的快照,通常应该需要几分钟),然后我重新启动集群。 它有点工作,这意味着真空停止,一些磁盘空间被清除(600GB),但表仍然是原始大小的两倍多。因为再次清理它太冒险了,所以我求助于创建它的深层副本,这应该创建表的清理副本。 (您可以在此处阅读有关深拷贝的信息 - http://docs.aws.amazon.com/redshift/latest/dg/performing-a-deep-copy.html)。

    【讨论】:

    • Rahul Gupta 的回答是正确的,成功停止了长时间运行的真空。这个答案很有帮助,但不应该是公认的答案。
    【解决方案2】:
    1. 吸尘要定期安排,如果每天对桌子进行吸尘,应该很快,不会有明显的副作用;
    2. 在您描述的情况下,将集群扩展到更大的配置,然后进行清理,然后您可以缩减到原始配置会更安全。请记住,可用磁盘空间对于 RedShift 集群上的计算至关重要,当可用磁盘空间下降时,集群上的所有读/写操作都会变得非常缓慢。

    【讨论】:

      【解决方案3】:

      我已经多次停止真空操作。也许那个时候该功能不可用。
      运行以下查询,它会为您提供 Vacuum 查询的进程 ID。

      select * from stv_recents where status='Running';

      获得进程 ID 后,您可以运行以下查询来终止进程。
      select pg_terminate_backend( pid );

      【讨论】:

      • 这行得通,在我的情况下,没有任何未排序的行得到排序,但 vacumm 操作已停止。
      【解决方案4】:

      提示:运行此查询:(取自 here)以查看您应该清理哪些表。

      注意:这仅在您想知道哪些表很大以及通过vacuum每个表可以得到什么的情况下才有帮助。

      select trim(pgdb.datname) as Database,
          trim(a.name) as Table,  ((b.mbytes/part.total::decimal)*100)::decimal(5,2) as pct_of_total, b.mbytes, b.unsorted_mbytes
          from stv_tbl_perm a
          join pg_database as pgdb on pgdb.oid = a.db_id
          join (select tbl, sum(decode(unsorted, 1, 1, 0)) as unsorted_mbytes, count(*) as mbytes
          from stv_blocklist group by tbl) b on a.id=b.tbl
          join ( select sum(capacity) as  total
            from stv_partitions where part_begin=0 ) as part on 1=1
          where a.slice=0
          order by 3 desc, db_id, name;
      

      然后真空表高unsorted_mbytes:VACUUM your_table;

      【讨论】:

        猜你喜欢
        • 2018-12-21
        • 2015-03-23
        • 1970-01-01
        • 2018-11-09
        • 1970-01-01
        • 2018-05-25
        • 2018-04-23
        • 2017-01-16
        • 2020-04-06
        相关资源
        最近更新 更多