Page 241 - 《软件学报》2026年第5期
P. 241
2120 软件学报 2026 年第 37 卷第 5 期
子图中, 配置项 bgwriter_lru_multiplier 生效要求 the background writer 的状态是 enabled, 而 bgwriter_lru_maxpages
值为 0 会导致 the background writer 的状态是 disabled, 从该关联子图中我们可以经由 the background writer 功能
状态的传递关系, 推断出配置间约束:
(bgwriter_lru_maxpages==0) LeadTo NotEffect(bgwriter_lru_multiplier).
该过程与图 3 展示的人工思维链类似, 通过 E C -E F -E C 关系推断配置间约束. 而在图 9 下半部分的子图中,
recovery_max_workers 和 recovery_parse_workers 均大于 0 会导致“recovery_parse_workers prevails recovery_
max_workers”, 从而可以推断出配置间约束:
(recovery_parse_workers>0 AND recovery_max_workers>0) LeadTo NotEffect(recovery_max_workers).
该过程即直接通过 E C -E C 的多配置关联关系推断配置间约束.
● 配置共同行为约束. 配置共同行为约束指多个配置项相关的配置条件同时满足时会导致某项系统行为发生.
例如在图 9 下半部分的子图中, recovery_max_workers 和 recovery_parse_workers 均大于 0 会导致 concurrent replay
function is disabled, 这说明这两个配置组成的条件共同决定了该系统行为, 构成了共同行为约束.
● 配置建议约束. 配置建议约束指软件配置被建议设置为特定值或者满足特定条件, 如果该条件不满足, 系统
可能产生预期之外的后果. 例如配置项 maintenance_work_mem 和 work_mem 所关联的配置条件 maintenance_work_
mem≥work_mem 不满足时, 会导致“system might not function optimally during automatic vacuuming or maintenance
operations”, 这体现了配置建议约束, 即 maintenance_work_mem 被建议设置为大于 work_mem 的值.
一条配置间约束关系由一组明确的配置条件和相应的提示信息组成. 因此在配置间约束推断阶段, LLM-
Extractor 读入一组多配置关联子图信息, 并加入相关配置的类型、范围等必要上下文信息, 引导 LLM 在关联路径
中推断是否存在上述的 3 种配置间约束, 并输出条件和对应的提示信息. 该步骤的提示模板如图 10 所示.
基于多配置关联子图的配置约束推断
任务角色和关联子图上下文
任务描述 (思维链) 和示例
输出格式规约
图 10 配置间约束推断提示词结构
如图 10 橙色部分介绍了配置间约束推断任务中 LLM 的任务角色, 黄色部分将关联子图中的信息以自然语言
的方式写入提示词中, 便于模型理解和分析, 蓝色部分则说明了 3 种类型的配置间约束, 并给出少量示例, 提升模
型的分析推断效果, 提示词最后约定输出格式, 便于识别返回结果.
4 实验和评估
为了验证本文提出方法的有效性, 我们使用 Python 实现了 LLM-Extractor, 集成了多个广泛使用的 LLM 的调
用接口, 并使用来自多个大型开源软件系统的配置文档数据进行实验和评估, 本节主要围绕以下 3 个问题进行实

