ovn-remote-probe-interval 这个配置只在 ovn 的代码中有引用,libovsdb 和 ovs 代码中完全不涉及
<dt><code>external_ids:ovn-remote-probe-interval</code></dt>
<dd>
<p>
The inactivity probe interval of the connection to the OVN database,
in milliseconds.
If the value is zero, it disables the connection keepalive feature.
</p>
<p>
If the value is nonzero, then it will be forced to a value of
at least 1000 ms.
</p>
</dd>
sb db idl 相关探测
(v.v) ➜ ovn git:(main) grep set_idl_probe_interval -r *
controller/ovn-controller.c: set_idl_probe_interval(ovnsb_idl, remote, interval);
controller-vtep/ovn-controller-vtep.c: set_idl_probe_interval(ovn_sb_idl, ovnsb_remote, interval);
ic/ovn-ic.c: set_idl_probe_interval(ovn_sb_idl, ovnsb_db, interval);
ic/ovn-ic.c: set_idl_probe_interval(ovn_nb_idl, ovnnb_db, interval);
ic/ovn-ic.c: set_idl_probe_interval(ovn_icsb_idl, ovn_ic_sb_db, ic_interval);
ic/ovn-ic.c: set_idl_probe_interval(ovn_icnb_idl, ovn_ic_nb_db, ic_interval);
lib/ovn-util.h:void set_idl_probe_interval(struct ovsdb_idl *idl, const char *remote,
lib/ovn-util.c:void set_idl_probe_interval(struct ovsdb_idl *idl, const char *remote,
northd/ovn-northd.c: set_idl_probe_interval(ovnnb_idl_loop.idl, ovnnb_db, interval);
northd/ovn-northd.c: set_idl_probe_interval(ovnsb_idl_loop.idl, ovnsb_db, interval);
utilities/ovn-ic-sbctl.c: set_idl_probe_interval(idl, db, DEFAULT_UTILS_PROBE_INTERVAL_MSEC);
utilities/ovn-ic-nbctl.c: set_idl_probe_interval(idl, db, DEFAULT_UTILS_PROBE_INTERVAL_MSEC);
utilities/ovn-dbctl.c: set_idl_probe_interval(idl, db, DEFAULT_UTILS_PROBE_INTERVAL_MSEC);
utilities/ovn-dbctl.c: set_idl_probe_interval(ctx->idl, db,
(v.v) ➜ ovn git:(main)
可以看到在常规场景以及 ic 场景中, nb sb 的 probe 应该都是该参数控制,探测频率过高会导致 cpu 压力,而且 ovn-northd 本身可能会因为流表计算经常看到 cpu 100%,如果设置为 10 毫秒级可能会导致来不及分时间片执行,导致 probe 失败,从而导致频繁触发重新选举。