我有一个 Postgres 数据库,我托管在具有 8 GB RAM 的四核服务器中。
在任何时候,都可能同时发生 100 次左右的读取和写入。我正在经历高 IO 等待时间。当我做“top”时,我的大多数内核都有非常高的 IO 等待 % - 50% - 70%。
我有一种感觉,我需要微调 Postgres 中的一些参数。但哪些对 IO 使用影响最大?添加更多内核是否有助于减少 IO 使用率?
我遇到了 Postgres autovacuum 进程干扰数据库整体性能的问题。它使我的选择、插入和更新查询比平时慢。哪些设置和优化策略可以使 autovacuum 对我的数据库性能的影响较小?
有没有办法让它不消耗尽可能多的内存/CPU,以便客户端查询可以更有效地运行?
我有 2 个 HD 分区 - 一个带有 SSD,另一个带有普通硬盘。
我有多个数据库(如逻辑数据库,而不是物理数据库)和 1 个数据目录。我希望 1 个数据库的数据驻留在 SSD 分区中,因为它是一个比其他数据库具有更多读/写的数据库。而且由于 SSD 分区的空间有限,我无法将所有数据库存储在那里,仅存储一个。
有没有办法在 Postgres 中配置它 - 有可能吗?有在线教程可以阅读吗?我试过谷歌搜索,但所有的结果都在讨论逻辑分区表,而不是跨不同的硬盘分区。
pg_dump 有两种主要格式:custom 与 sql。对于自定义,默认情况下是压缩的,如果您尝试打开它,则无法读取。但是转储到这种格式比 SQL 格式更快吗?还是速度一样?
我正在阅读有关如何在 Postgres 中设置从 master 到 slave 的流式复制的教程。
一些教程建议在 master 中设置存档(并在 slave 中恢复)。在master中,这需要在conf文件中设置:
wal_level = hot_standby
archive_mode = on
archive_command = 'some rsync command to rsync logfile segments from master to slave'
Run Code Online (Sandbox Code Playgroud)
这个存档的目的是什么?什么时候不需要设置流式复制?