跳转至

排查故障

以下为使用中常见问题的排障方法

1. 创建失败

一般创建失败时,网页实例【创建失败】状态旁边会显示简要原因,如果从该原因无法判断故障来源,那么请登录该实例所在主机,执行以下命令排查:

首先确认是否可以正常创建容器

# 创建一个简单GPU容器的命令,验证是否创建容器过程中存在docker的问题。往往GPU故障会导致无法创建容器
docker run -it --rm --gpus=all python:3.10 bash

如果可以创建容器,那么查看worker-agent的日志

# 查看worker agent日志。执行命令后按[shift + g]跳到最后一行日志,看是否有failed相关的错误信息,根据错误信息进行判断
journalctl -u worker-agent.service

2. 克隆失败

克隆失败的主要原因是worker agent配置中的ssh账号密码问题

排查:

  1. worker agent的yaml配置文件中的ssh账号是否为root用户,由于跨主机拷贝docker目录下的文件,需要root权限才能写入

  2. 如果机器间配置密钥做免密ssh登录的方式,请确认密钥/公钥配置在/root/.ssh/目录下,而不是其他HOME用户目录下

然后进行测试:先确认源实例和目标实例所在主机,然后在源主机去ssh登录目标主机,确认是否可以正常登录(登录时请先切换到root用户,这样更符合实际情况)

3. 无法关机

首先在AutoDL私有云管理员账号的后台主机管理中,确认该实例所在主机的健康状态,如果是异常则登录该主机,检查下面的项目:

  1. 执行 nvidia-smi 确认GPU正常。如果卡主则解决GPU问题(如重启服务器等)

  2. 执行 docker ps 确认docker正常。

  3. 执行 journalctl -u worker-agent.service命令查看worker-agent日志(执行命令后按[shift + g]跳到最后一行日志)

4. 实例开机后无法连接

这里的情形为第一次完成部署后,创建第一个实例时,无法访问实例。

使用实例的JupyterLab或SSH访问实例的过程,都是[ 用户 → proxy agent → 实例 ],所以首先确认[初始化配置中的proxy agent的ip地址] 是否可以正常ping通。

这里假设配置的proxy agent的公网地址是A,内网地址为B。那么:

  1. 登录实例所在主机执行命令: ping B (如果没有配置内网地址,则ping A),看是否可以ping通,不过不能ping通请检查网络问题,或者是否配置错了IP地址

  2. 在用户本地机器(即在哪台机器上打开的实例JupyterLab)上执行命令:ping A (如果没有配置公网地址,则ping B

  3. 如果以上两项均正常,那么找到实例的JupyterLab或SSH的访问地址,该地址中有一个端口号(比如20000)。然后登录proxy agent所在主机,执行命令:telnet localhost 20000 ,如果telnet可以通,那么说明[ 用户 → proxy agent → 实例 ]该链路中,proxy和实例之间的链路正常,问题在用户和proxy之间的链路。否则为proxy和实例之间的链路问题。如果为用户和proxy之间的链路问题,请检查端口的安全组是否已开放;如果为proxy和实例之间的链路问题,那么登录实例所在主机,查看该实例docker容器的日志