Vercel存储持续扩容超限额问题排查求助
排查与解决Vercel Postgres存储异常增长问题
1. 检查Postgres WAL日志与临时文件
Vercel Postgres的存储统计可能包含**WAL(预写日志)**和临时文件,这类文件不会被pg_database_size统计。执行以下SQL排查:
-- 查看WAL日志总占用量 SELECT pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), '0/0')) AS wal_total_size; -- 查看临时文件使用情况 SELECT temp_files, temp_bytes FROM pg_stat_database WHERE datname = 'verceldb';
如果WAL日志持续堆积,大概率是长事务未提交、备份机制异常导致日志无法自动回收。
2. 核对Vercel平台存储统计维度
Vercel的存储限额并非仅统计数据库本身,还包含自动备份文件、Serverless Functions执行日志等。登录Vercel Dashboard进入项目存储页面,查看细分占用项:
- 确认是否有旧备份版本未自动清理
- 检查函数日志是否被持久化且未设置过期规则
3. 排查长事务与未关闭连接
未提交的长事务会阻止Postgres回收WAL日志,进而导致存储持续增长。执行以下SQL查看活跃事务:
-- 列出持续运行的事务 SELECT pid, now() - xact_start AS duration, query FROM pg_stat_activity WHERE state IN ('idle in transaction', 'active');
找到对应的Serverless Functions代码,确保每次数据库操作后正确提交/回滚事务,并关闭连接。
4. 检查临时表滥用情况
如果代码中频繁创建临时表但未清理,或存在大量排序/聚合操作生成临时文件,也会占用存储。执行以下SQL查看临时表:
-- 查看当前存在的临时表及大小 SELECT relname, pg_size_pretty(pg_relation_size(relid)) FROM pg_stat_user_tables WHERE relname LIKE 'pg_temp%';
5. 联系Vercel官方支持
若以上排查均未找到原因,直接提交工单给Vercel支持,提供项目ID和存储增长时间线,他们可以查看底层存储的具体占用细节,排除平台层面的异常。
内容的提问来源于stack exchange,提问作者Firok
相关产品推荐
相关产品推荐

