在postgressql.conf文件中,我想打开autovacuum并将阈值更改为100.因为更改max_workers线程明确指出它需要重启,我推断启用authvacuum并更改其门槛没有。有人可以证实吗?
autovacuum = on # Enable autovacuum subprocess? 'on'
# requires track_counts to also be on.
#log_autovacuum_min_duration = -1 # -1 disables, 0 logs all actions and
# their durations, > 0 logs only
# actions running at least this number
# of milliseconds.
#autovacuum_max_workers = 3 # max number of autovacuum subprocesses
# **(change requires restart)**
#autovacuum_naptime = 1min # time between autovacuum runs
autovacuum_vacuum_threshold = 100 # min number of row updates before
# vacuum
然而,在下面的帖子中,我找到了相反推论的证据;请注意,effective_cache_size显式声明在autovacuum未提及重新启动时不需要重新启动: https://wiki.postgresql.org/wiki/Tuning_Your_PostgreSQL_Server
答案 0 :(得分:3)
当注释掉postgresql.conf
中的值时,表示使用默认值。
autovacuum
默认为on
。
执行命令
SHOW autovacuum;
查看当前值。
有关参数的更多详细信息,请使用pg_settings
:
postgres=> \x
Expanded display is on.
postgres=> select * from pg_settings where name = 'autovacuum';
-[ RECORD 1 ]---------------------------------
name | autovacuum
setting | on
unit |
category | Autovacuum
short_desc | Starts the autovacuum subprocess.
extra_desc |
context | sighup
vartype | bool
source | default
min_val |
max_val |
enumvals |
boot_val | on
reset_val | on
sourcefile |
sourceline |
请参阅context
条目?这肯定告诉你什么时候可以改变它。在这种情况下,它可以在sighup时更改,这是postmaster重新加载。因此,邮件管理员kill -HUP
,pg_ctl reload
或SELECT pg_reload_conf();
会更新设置,从而导致postgresql.conf
中的新值生效。
autovacuum_vacuum_threshold
也是如此。
一般情况下,如果文档没有提及您需要重新启动,那么您通常需要重新配置配置才能使配置文件中的更改生效。