所以我对node-ttl和node-purge-ttl应该如何工作有点困惑。我在database.ini文件中设置了它们。 node-ttl设置为35m,node-purge-ttl设置为5m。从puppetdb文档中我得出结论,使用这些设置,节点将在35分钟不活动后过期,例如节点已经死了,并且没有与主机一起检查35分钟,并且在5分钟后节点应该从数据库中清除。
但这似乎不会发生。即使在终止后超过40分钟,该节点仍然看起来仍然活跃和快乐。但是,在db根据gc-interval执行压缩之后,节点似乎消失了。
我是否正确理解此功能?如果我是,我做错了什么?我使用的是最新版本的puppetdb和puppetserver。
这些是我的database.ini文件中设置的参数:
# How often (in minutes) to compact the database
# gc-interval = 60
gc-interval = 60
# Number of seconds before any SQL query is considered 'slow'; offending
# queries will not be interrupted, but will be logged at the WARN log level.
log-slow-statements = 10
syntax_pgs = true
node-ttl = 35m
node-purge-ttl = 5m
report-ttl = 14d
conn-max-age = 60
conn-keep-alive = 45
conn-lifetime = 0
答案 0 :(得分:1)
TTL设置会改变gc进程的行为。当gc运行时(每隔gc-interval分钟),它会查询这些选项以确定要停用哪些节点以及直接删除哪些节点。
gc进程本身就是清理数据的原因,这就是为什么在下一次gc发生之前你没有看到任何变化的原因。 Quoth the docs:“每隔gc-interval分钟将检查节点的陈旧性。”
基本上,你没有做错任何事!这只是db清理不会立即发生,而是定期进行。