ubuntu12.04通过Ganglia利用NVML模块进行GPU监控
1.安装Ganglia,这里安装的是3.1*版本,因为监控GPU的模块只支持3.1*版本系列的
apt-get install ganglia*
2.下载并安装PyNVML和NVML模块,下载地址https://github.com/ganglia/gmond_python_modules/tree/master/gpu
安装PyNVML,安装文档上要求python为2.5或更早版本,其实系统自带python版本2.7.3是可以通过编译的,这里就不需要更换python环境了
cd ~/nvidia/nvidia-ml-py-* python setup.py install
安装NVML
2.1复制python模块到Ganglia模块目录
mkdir /usr/lib/ganglia/python_modules cp python_modules/* /usr/lib/ganglia/python_modules
2.2复制配置文件和前端图形展现文件到ganglia相关目录
mkdir /etc/ganglia/conf.d cp conf.d/* /etc/ganglia/conf.d cp graph.d/* /usr/share/ganglia-webfrontend/graph.d/
2.3为web页面打补丁
cp ganglia_web.patch /usr/share/ganglia-webfrontend/ cp ganglia_web.patch /usr/share/ganglia-webfrontend/templates/default/ cd /usr/share/ganglia-webfrontend/ cp host_view.php host_view.php.bak patch <ganglia_web.patch cd /usr/share/ganglia-webfrontend/templates/default/ cp host_view.tpl host_view.tpl.bak patch <ganglia_web.patch
3.将服务端/etc/ganglia/gmond.conf文件拷贝到客户端/etc/ganglia/,并在conf.d目录下新建modpython.conf文件,内容如下
modules { module { name = "python_module" path = "/usr/lib/ganglia/modpython.so" params = "/usr/lib/ganglia/python_modules" } }
4.启动服务
service ganglia-monitor start
5.说明:以上都是客户端配置,服务器端配置的话也要经过上面的步骤,只不过需要多开启几个服务,如果被监控的GPU看不到图形的话,请运行以下命令
python /usr/lib/ganglia/python_moudles/nvidia.py
service ganglia-monitor restart
6.以上步骤的脚本放到服务器端,批量部署客户端,脚本如下
#!/bin/bash
cd ~ wget 192.168.87.102/nvidia.zip unzip nvidia.zip cp ~/nvidia/sources.list /etc/apt/ apt-get update apt-get -y install ganglia* cd ~/nvidia/nvidia-ml-py-* python setup.py install cp ~/nvidia/graph.d/* /usr/share/ganglia-webfrontend/graph.d/ cp ~/nvidia/host_view.php /usr/share/ganglia-webfrontend/ cp ~/nvidia/host_view.tpl /usr/share/ganglia-webfrontend/templates/default/ mkdir /usr/lib/ganglia/python_modules cp ~/nvidia/python_modules/* /usr/lib/ganglia/python_modules mkdir /etc/ganglia/conf.d cp ~/nvidia/conf.d/* /etc/ganglia/conf.d cp ~/nvidia/gmond.conf /etc/ganglia/ service ganglia-monitor restart rm -rf ~/nvidia* rm -rf ~/gpu*
执行脚本
wget 192.168.87.102/gpu.sh && chmod +x gpu.sh && sh gpu.sh
下图是被监控GPU服务器的详细界面