mirror of
https://github.com/Control-D-Inc/ctrld.git
synced 2026-02-03 22:18:39 +00:00
cmd/cli: set DNS last when running ctrld service
On low resources Windows Server VM, profiling shows the bottle neck when interacting with Windows DNS server to add/remove forwarders using by calling external powershell commands. This happens because ctrld try setting DNS before it runs. However, it would be better if ctrld only sets DNS after all its listeners ready. So it won't block ctrld from receiving requests. With this change, self-check process on dual Core Windows server VM now runs constantly fast, ~2-4 seconds when running multiple times in a row.
This commit is contained in:
committed by
Cuong Manh Le
parent
9a34df61bb
commit
b8155e6182
@@ -194,9 +194,6 @@ func (p *prog) runWait() {
|
||||
}
|
||||
|
||||
func (p *prog) preRun() {
|
||||
if !service.Interactive() {
|
||||
p.setDNS()
|
||||
}
|
||||
if runtime.GOOS == "darwin" {
|
||||
p.onStopped = append(p.onStopped, func() {
|
||||
if !service.Interactive() {
|
||||
@@ -206,6 +203,12 @@ func (p *prog) preRun() {
|
||||
}
|
||||
}
|
||||
|
||||
func (p *prog) postRun() {
|
||||
if !service.Interactive() {
|
||||
p.setDNS()
|
||||
}
|
||||
}
|
||||
|
||||
func (p *prog) setupUpstream(cfg *ctrld.Config) {
|
||||
localUpstreams := make([]string, 0, len(cfg.Upstream))
|
||||
ptrNameservers := make([]string, 0, len(cfg.Upstream))
|
||||
@@ -388,6 +391,7 @@ func (p *prog) run(reload bool, reloadCh chan struct{}) {
|
||||
if p.logConn != nil {
|
||||
_ = p.logConn.Close()
|
||||
}
|
||||
p.postRun()
|
||||
}
|
||||
wg.Wait()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user