新容器中运行npu-smi或hccn_tool等命令提示设备被占用 问题描述在一个新启动的容器中调用npu-smi或hccn_tool等命令时提示设备被占用,返回“dcmi model initialized failed, because the device is used. ret is -8020”等类似报错信息,如图1所示。 图1 报错信息 可能原因存在另一个普通容器正在使用这些设备。宿主机上存在与pid为1的进程“mount namespace”不同的进程正在使用这些设备。存在一个曾使用非root用户运行过的特权容器。 解决方案在宿主机上执行cat /proc/uda/namespace_node命令查询当前环境上的设备使用情况。在ns_id小于128的映射表中根据udevid找到在新容器中不能使用的设备,进一步在映射表中找到正在使用该设备的进程,即表中的root_tgid。如图2所示,表示device 0和device 1被tgid为1162687的进程使用。图2 查看设备使用情况 若该进程是宿主机上的进程,退出该进程即可;若通过ps -ef命令查询,发现进程1162687运行在容器(进程号为1162668)中,如图3所示,则根据进程名中的container id找到对应的容器,如图4所示,将该容器退出后,新的容器即可正常使用。图3 查看进程 图4 查找对应容器 若新的普通容器中映射的设备分别被多个其他普通容器占用,则需要将这些普通容器全部退出,新的普通容器才能使用这些设备。 父主题: FAQ