常用命令

在执行命令的时候请使用完整的路径或者使用相对路径,如:

/$EdgeDNS安装目录/bin/edge-dns -v

或者:

cd /$EdgeDNS安装目录
bin/edge-dns -v

如果使用的是GoEdge远程安装的节点,安装目录默认在 /$ssh用户名/edge-dns/edge-dns,请将其中的$ssh用户名换成你实际使用的用户名,比如root

从GoEdge v1.2.7以后,节点初次启动后(edge-dns start)后,会在系统里自动生成软链接:创建文件 /usr/bin/edge-dns,以后可以执行使用edge-dns xxx命令执行。

注意:如果提示命令找不到 Unknown command: edge-dns,说明你没有指定命令所在目录,请在命令执行时使用完整的路径或者使用相对路径,参考本文开始说明。

注意:如果是使用非 root 用户执行命令,你需要使用 sudo 执行大部分命令,比如 sudo bin/edge-dns status

打印帮助信息

edge-dns -h

打印版本信息

edge-dns -v

启动服务

启动服务并在后台运行:

edge-dns start

如果要在前端启动服务,并阻塞当前进程,可以使用:

edge-dns

测试服务

可以用下面命令检查服务是否可以正常工作:

edge-dns test

停止服务

edge-dns stop

对于集群中开启了systemd服务的(默认是开启状态),可以使用以下命令停止节点:

systemctl stop edge-dns

重启服务

edge-dns restart

查看服务状态

edge-dns status

安装systemd系统服务

安装系统服务后,系统重新启动的时候,会自动启动 edge-dns 进程。使用此命令的前提是系统已经安装并启用了 systemd 服务。可以通过 systemctl --system 命令来确认 systemd 服务是否在正常运行。

edge-dns service

使用守护进程启动服务

自动安装的edge-dns会自动启动一个守护进程,手动启动的时候也可以通过 daemon 参数来启动守护进程。当守护进程在运行时,edge-dns 进程在遇到故障意外退出时,守护进程可以立即启动一个新的 edge-dns 进程,保障服务不会长时间宕机。

edge-dns daemon

调试

开启pprof

可以使用以下命令开启pprof模式,用来监控节点运行性能信息:

edge-dns pprof

默认pprof地址为127.0.0.1:6060,可以使用 --addr 指定地址:

edge-dns pprof --addr="192.168.1.100:6060"

启动后可以在浏览器上访问这个地址,比如 http://127.0.0.1:6060/debug/pprof/ ,或者使用go tool pprof命令来查看,比如查看所有alloc的heap信息:

go tool pprof -alloc_space  "http://127.0.0.1:6060/debug/pprof/heap"

查看正在使用的内存空间:

go tool pprof -inuse_space  "http://127.0.0.1:6060/debug/pprof/heap"

查看CPU调用信息:

go tool pprof  "http://127.0.0.1:6060/debug/pprof/profile"

查看当前正在运行的goroutine:

go tool pprof "http://localhost:6060/debug/pprof/goroutine"

还有更多的示例可以参考 https://jvns.ca/blog/2017/09/24/profiling-go-with-pprof/

强制执行内存回收

默认2分钟回收一次运行时内存,使用此命令可以强制立即执行回收。此命令跟内存缓存无关。

edge-dns gc

卸载

从GoEdge v1.2.7开始,可以使用命令卸载一个节点程序:

edge-dns uninstall

卸载成功后,会自动删除edge-dns相关服务、目录、文件等。

卸载后,并不会删除缓存策略使用的缓存目录,如有必要,你需要手工删除;如果有遗留的edge-dns进程,可以使用 kill 对应进程ID 来停止。

GoEdge文档