telemetry故障
服务端启动失败
现象描述
配置文件中开启telemetry后,服务端启动失败,日志出现报错:
K-NET dpdk telemetry mkdir rte dir failed, errno 13
原因
服务端未配置环境变量XDG_RUNTIME_DIR。
操作步骤
-
设置“XDG_RUNTIME_DIR”启动环境变量,普通用户未设置该变量会产生错误。
说明
用户名使用KNET_USER作为通配符进行示例,运行时请将其替换为实际用户名。环境变量路径涉及的权限及安全需用户保证。
用户可以根据需要选择永久或者临时配置环境变量。如果用户选择临时配置环境变量,需要在每个终端会话执行相关命令。
-
永久配置环境变量。
说明
配置完成之后重新切换到该用户时无需重新配置环境变量。
-
创建环境变量路径。
cd /home/KNET_USER/ mkdir knet -
编辑环境变量相关文件。
vi ~/.bashrc -
按“i”进入编辑模式,在末尾加上:
export XDG_RUNTIME_DIR=/home/KNET_USER/knet -
按“Esc”键退出编辑模式,输入 :wq!,按“Enter”键保存并退出文件。
source ~/.bashrc echo $XDG_RUNTIME_DIR #确认是否配置环境变量,如果已配置会显示配置的路径
-
-
临时配置环境变量。
说明
- 服务端环境关闭或重启后,或者退出普通用户再重新切换到该用户,均需要重新执行步骤。
- 通过设置环境变量指定运行时目录,且该路径会根据不同的用户名而变化。
-
创建环境变量路径。
cd /home/KNET_USER/ mkdir knet -
配置环境变量。
export XDG_RUNTIME_DIR=/home/KNET_USER/knet echo $XDG_RUNTIME_DIR #确认是否配置环境变量,如果已配置会显示配置的路径
-
telemetry连接失败
现象描述
执行dpdk-telemetry.py -f knet -i 1后,出现telemetry连接失败的报错:
Connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
Error connecting to /var/run/dpdk/rte/dpdk_telemetry.v2
No DPDK apps with telemetry enabled available
或者
Connecting to /tmp/dpdk/rte/dpdk_telemetry.v2
Error connecting to /tmp/dpdk/rte/dpdk_telemetry.v2
No DPDK apps with telemetry enabled available
原因
dpdk-telemetry.py脚本没有找到可用的socket文件。
操作步骤
-
配置文件knet_comm.conf中开启telemetry选项,将“telemetry”改为“1”。
vi /etc/knet/knet_comm.conf按“i”进入编辑模式,修改如下配置项:
{ "dpdk": { "telemetry": 1 } }按“Esc”键退出编辑模式,输入 :wq!,按“Enter”键保存并退出文件。
-
设置“XDG_RUNTIME_DIR”启动环境变量,普通用户未设置该变量会产生错误。
说明
用户名使用KNET_USER作为通配符进行示例,运行时请将其替换为实际用户名。环境变量路径涉及的权限及安全需要用户保证。
用户可以根据需要选择永久或者临时配置环境变量。如果用户选择临时配置环境变量,需要在每个终端页面执行相关命令。
-
永久配置环境变量。
说明
配置完成之后重新切换到该用户时无需重新配置环境变量。
-
创建环境变量路径。
cd /home/KNET_USER/ mkdir knet -
编辑环境变量相关文件。
vi ~/.bashrc -
按“i“进入编辑模式,在末尾加上:
export XDG_RUNTIME_DIR=/home/KNET_USER/knet -
按“Esc”键退出编辑模式,输入 :wq!,按“Enter”键保存并退出文件。
source ~/.bashrc echo $XDG_RUNTIME_DIR #确认是否配置环境变量,如果已配置会显示配置的路径
-
-
临时配置环境变量。
说明
- 服务端环境关闭或重启后,或者退出普通用户再重新切换到该用户,均需要重新执行步骤。
- 通过设置环境变量指定运行时目录,路径依据不同用户名会有差异。
-
创建环境变量路径。
cd /home/KNET_USER/ mkdir knet -
配置环境变量。
export XDG_RUNTIME_DIR=/home/KNET_USER/knet echo $XDG_RUNTIME_DIR #确认是否配置环境变量,如果已配置会显示配置的路径
-
-
启动服务端进程。
请根据实际业务进行启动。
-
检查是否存在socket文件。
ls $XDG_RUNTIME_DIR/dpdk/rte/dpdk*回显示例:
/home/KNET_USER/knet/dpdk/rte/dpdk_telemetry.v2 # KNET_USER为用户名占位符,/dpdk/rte路径会自动创建,/home/KNET_USER/knet为[2]配置的环境变量