小编Dar*_*zak的帖子

如何使 pg_dump 减少资源贪婪

我已将 cron 配置为使用以下规则每天调用 pg_dump:

# xyz database backups:
00 01 * * * root umask 077 && pg_dump --user=xyz_system xyz | gzip > /var/xyz/backup/db/xyz/`date -u +\%Y\%m\%dT\%H\%M\%S`.gz
Run Code Online (Sandbox Code Playgroud)

基本上,它有效。数据库增长相对较快且呈指数增长(但指数不是很大)。目前,压缩后的转储大约需要 160MB。当数据库被转储时,系统开始爬行。我使用该top命令看到的平均负载约为200, 200, 180. 基本上服务器几乎没有响应。

一个问题是如何确定瓶颈在哪里。性能低下是I/O操作繁重导致的吗?是由表锁定问题引起的吗?也许这是一个内存问题?pg_dump命令的输出通过管道传输到gzip命令。它是顺序的,即整个转储放在内存中(交换问题?)然后压缩或并发(即 gzip 压缩它得到的东西并等待更多)?可能是由其他因素引起的吗?

第二个问题是如何使倾倒操作该系统的主要功能侵扰程度较低。据我了解,由于数据库完整性,转储不能花费太多时间。有表写锁等。我可以做些什么来限制问题(或延迟它,考虑到数据库增长)。

第三个问题:是否已经时间来了解更多的高级数据库配置?系统工作正常,当不执行数据库备份时,但也许数据库转储问题是传入问题的第一个症状?

postgresql performance database-backup

8
推荐指数
2
解决办法
1万
查看次数

标签 统计

database-backup ×1

performance ×1

postgresql ×1