批量查看gpu状态
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
鱼骨剪 fd39cd803a update 12 months ago
pics 更新readme 12 months ago
.gitignore update 1 year ago
README.md update 12 months ago
check.py 更新readme 12 months ago
serverList_examlpe.json 更新readme 12 months ago

README.md

简介

用于在终端同时查看多个服务器上的显卡状态。 对显卡型号、温度、显存占用、显卡利用率进行可视化,并根据显存占用、显卡利用率来显示为空闲或者占用。

该程序本质上就是通过ssh登录服务器,然后通过nvidia-smi命令获取到显卡的信息,然后将所有服务器的信息汇总可视化。所以需要设置密码或者密钥,但是该程序不会做任何的记录或者上传这些敏感信息,具体逻辑可以查看源码。并且因为是使用nvidia-smi获取的数据,所以如果没有正确安装驱动或者不是N卡的话可能无法获取显卡信息。

效果

  1. 表格形式可视化(实时)
  2. 直接输出

使用说明

步骤

  1. 安装所需的python库
pip install paramiko socket -i https://pypi.tuna.tsinghua.edu.cn/simple
  1. 配置服务器信息 复制serverList_examlpe.json并改名为serverList.json,参考示例填写需要监控的服务器信息,格式如下。
[
    {
        "title": "233",
        "ip": "10.1.16.233",
        "port": 22,
        "username": "lxb",
        "password": "abcdefg"
    },
    {
        "title": "76",
        "ip": "10.1.16.76",
        "port": 22,
        "username": "lxb",
        "key_filename": "/home/.ssh/id_rsa"
    }
]

代表的信息为:

  • title : 标题,显示在终端中
  • ip : 服务器的ip
  • port : 连接的端口(如果直接连服务器的话一般是22,如果是连接内部的容器或者是网上租的其他服务器一般要改为对应的端口)
  • username : 用于登录的用户名
  • password : 用户的登陆密码(密码、密钥选其一即可)
  • key_filename : 用户私钥的本地路径(密码、密钥选其一即可)
  1. 在终端运行check.py文件即可。
python check.py

说明

  • 代码跑起来之后,终端会输出->,此时可以输入命令,回车执行。输入help回车可以查看帮助。
  • 输入check可以查询一次所有服务器的信息。
  • 输入list可以查看所有服务器的配置信息。
  • 输入cell-widthcw可以查询当前的单元格大小(table模式的单元格),带上参数-为重置为默认值,如cw -。带上4个整数为修改单元格大小,如cw 12,23,4,5
  • 输入clear或者cls可以清空屏幕。
  • 输入exit退出程序。
  • 输入realtime或者rt实时查看显卡信息(开启实时查看之后只能ctrl+C退出程序),并且realtime还有参数可以指定。
    • -h--help,查看帮助。
    • -n <N>,更新时间,单位为秒,默认为2。例-n 1
    • -e <N1,N2,...>,指定title的服务器本次过滤掉不显示,输入多个时用,分割。例-e 529,174
    • -t--table,使用表格的形式绘制,不设置该参数时为直接输出的形式。
    • --f2,使用第二种刷新方式(),默认不开启。该选项的背景是,在windows的CMD中清屏操作有时候会导致终端闪烁(实测Ubuntu的不闪),所以就有了第二种刷新方式,通过直接覆盖的方式避免了闪烁。但是第二种刷新方式会窗口大小变化后造成其他的渲染问题。可根据需求选择,一般来说直接默认不开启就可以了。
    • 例如此时用表格形式,每秒更新,本次不显示529,174title的服务,用第一种刷新方式,为rt -t -n 1 -e 529,174
  • 当某个服务器的ssh连接断开时(或者没连上或者发生什么错误),该服务器对应的显卡不显示,变为显示对应的错误信息以供排查。并且会隔一段时间自动重连,同时显示已经重连的次数。
  • 如果本次刷新时,发现某个服务器并没有获取到最新的数据,则会在title的下面显示一个红色的X,下次再更新到新的数据则会取消。如果还是没有更新就会识别为断开连接。
  • 可以在check.py中查找get_bar函数,可以找到res.extend(['█'] * used_len)这行代码,替换里面的字符就可以替换表格形式绘制时候的slider样式。
  • 同样的搜索table_icon,可以修改表格形式绘制时表格的样式,内置了table_icon1table_icon2table_icon3三种,可以自行替换。