docker 上的 Greenplum 数据库服务 运行 占用大量磁盘 space

Greenplum Database service running on docker consumes high disk space

我在 docker 上有一个 greenplum 数据库实例 运行。表+索引中的数据非常少(大约 550 MB)。 我使用以下查询检查了所有表的大小:

SELECT *, pg_size_pretty(total_bytes) AS total
    , pg_size_pretty(index_bytes) AS INDEX
    , pg_size_pretty(toast_bytes) AS toast
    , pg_size_pretty(table_bytes) AS TABLE
  FROM (
  SELECT *, total_bytes-index_bytes-COALESCE(toast_bytes,0) AS table_bytes FROM (
      SELECT c.oid,nspname AS table_schema, relname AS TABLE_NAME
              , c.reltuples AS row_estimate
              , pg_total_relation_size(c.oid) AS total_bytes
              , pg_total_relation_size(c.oid) - pg_relation_size(c.oid) AS index_bytes
              , pg_total_relation_size(reltoastrelid) AS toast_bytes
          FROM pg_class c
          LEFT JOIN pg_namespace n ON n.oid = c.relnamespace
          WHERE relkind = 'r'
  ) a
) a
order by total_bytes desc

docker 图像为 4.7 GB。因此,此 greenplum docker 图像的近似用法应为 (4.7 + 0.5 ) = 5.2 GB。但是,docker 容器占用 13GB 磁盘 space。

磁盘使用情况如下:

[gpadmin@mdw ~]$ df -h
Filesystem                           Size  Used Avail Use% Mounted on
overlay                               17G   13G  4.7G  73% /
tmpfs                                2.0G     0  2.0G   0% /dev
tmpfs                                2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/mapper/centos_greenplum01-root   17G   13G  4.7G  73% /etc/hosts
shm                                   64M     0   64M   0% /dev/shm
tmpfs                                2.0G     0  2.0G   0% /proc/acpi
tmpfs                                2.0G     0  2.0G   0% /proc/scsi
tmpfs                                2.0G     0  2.0G   0% /sys/firmware

主机和docker都是CentOS

作为测试我的应用程序的一部分,我一天中多次 stop/start docker 容器。

调试步骤以确定根本原因是 docker 还是 greenplum。

登录docker:

cd /
df -schk *

迭代检查最大的目录:

问题的原因是 /data/primary/gpseg1/pg_log 中的巨大日志文件。

我删除了所有超过 2 天的日志。