Docker

PostgreSQL 高磁碟使用率

  • February 1, 2021

我在一個 docker 容器上有一個 PostgreSQL 數據庫,裡面有 50MB 的數據:

SELECT pg_size_pretty(pg_database_size('db_1'));
pg_size_pretty 
------------------
50 MB

但卷大小為 8.5GB:

sudo du -hd1 db_volume
8.5G    db_volume

我的 docker-compose 是這樣的:

version: '3.8'

services:
 r3-db:
   image: postgres:12
   restart: always
   ports:
     - 5432:5432
   environment:
     POSTGRES_PASSWORD: PASSWORD
     POSTGRES_USER: USER
     POSTGRES_DB: db_1
   volumes:
     - ./db_volume/:/var/lib/postgresql/data:Z

我嘗試VACUUM(FULL, ANALYZE, VERBOSE)在任何表上使用,但數據庫的文件大小沒有改變!

該卷包含許多core.NUMBER大小為 145MB 的文件,

在此處輸入圖像描述

如何減少數據庫的磁碟使用率?

這些是 PostgreSQL 崩潰時生成的核心轉儲。您可以將它們與 gdb 一起使用,以找出它崩潰的原因。您可以刪除它們。您可以保存一個以使用它來找出 PostgreSQL 不斷崩潰的原因,因為這絕對不應該發生。還可以查看 PostgreSQL 日誌文件,了解它崩潰的原因。

引用自:https://dba.stackexchange.com/questions/284337