您可以通过多种方式改善 PostgreSQL 数据库的性能。
以下两个参数可以控制自动 vacuum 操作,默认情况下,这些参数在 Sentinel Rapid Deployment 服务器安装期间会被注释,而您必须去除注释并设置相应值。
vacuum_cost_delay: 定义当超出成本限制时,进程休眠的时间。例如,可以将此值设置为 100。
vacuum_cost_limit: 定义导致 vacuum 进程休眠的累积成本。例如,可以将此值设置为 10000。
如果将这些参数的值设置为非零值,则可以降低 vacuum 和 analyze 命令对一般数据库活动造成的 I/O 影响。运行报告时,如此设置所能改善的性能可以忽略不计,因为此时 vacuum 所需的时间比较长。
默认情况下,autovacuum 进程设置为 true,会定期运行以恢复磁盘空间并更新规划工具的统计数字。随着数据库大小的增长,autovacuum 将不能维护所有数据库对象。此时如果性能不佳,请以 cron 作业的形式运行 AnalyzePartitions.sh 脚本。此 cron 作业应由拥有 Sentinel Rapid Deployment 进程的用户进行设置。
例如:
30 11 * * * $ESEC_HOME/bin/AnalyzePartitions.sh
其中:
30 为分钟。
11 为小时。
ESEC_HOME 为数据库的绝对路径。
在此示例中,脚本将在每天的 11:30 运行。
避免将存档安排在报告作业期间运行。如果您将这两个进程安排为同时运行,由于 PostgreSQL 的相关 bug,报告将会进入等待状态,在存档作业完成后才开始处理数据。此更改会影响数据库的性能。