Chr*_*isJ 6 postgresql database-size postgresql-9.5 amazon-rds
我不明白为什么我们的 AWS postgres 服务器耗尽了它的所有空间。我们只需要增加分配给它的存储空间,但无法从 postgres 中找到任何关于它正在使用那么多空间的提示。
亚马逊表示,我们在过去两周内吃掉了大约 60GB。Postgres 说我们的整个数据库仅超过 5GB,数据库操作主要是 INSERT 和 SELECT。
如何追踪和回收我们的存储?
这是 PSQL 中一些 size 命令的输出
select pg_size_pretty(pg_database_size('my_db'));
-- 3730 MB
SELECT pg_size_pretty(pg_total_relation_size(C.oid)) AS "total_size"
FROM pg_class C
LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace)
WHERE nspname NOT IN ('pg_catalog', 'information_schema')
AND C.relkind <> 'i'
AND nspname !~ '^pg_toast'
ORDER BY pg_total_relation_size(C.oid) DESC
LIMIT 20;
Run Code Online (Sandbox Code Playgroud)
给
1540 MB
1286 MB
235 MB
191 MB
Run Code Online (Sandbox Code Playgroud)
奇怪的是 autovacuumer 从未在任何表上触发(我假设这是因为我们很少删除行?)相对于表大小,死行的数量相当低(这些表的行数为数十万或百万)
SELECT
vacuum_count, autovacuum_count, n_dead_tup
FROM pg_stat_user_tables ORDER BY n_dead_tup DESC limit 5;
0 0 161
0 0 119
1 0 76
0 0 25
0 0 11
Run Code Online (Sandbox Code Playgroud)
主要是对数据库的操作是 INSERT 和 SELECT,有些是 UPDATES,很少是 DELETE。我们使用了很多 JSONB。
更新
\l+
显示与其他查询相同:3730 MB
归档时间: |
|
查看次数: |
943 次 |
最近记录: |