C++好项目:GPU服务器管理面板

GMPanel:GPU服务器管理面板

GitHub地址:yzfzzz/GMPanel: Management Panel for Distributed GPU Server Clusters (github.com)

🎉项目意义

对于搞深度学习的学生,如果你是使用公共 GPU 服务器集群的话,也许这个项目对你有帮助

它可以让你在手机上就查看服务器的显存大小, 无需 ssh 登录服务器, 然后输入 nvidia-smi 命令

同时也是学习 C++ 的一个好项目,难度不大(因为我也是菜鸟😂)

⚙功能

  • 客户端GUI界面、网页端界面
  • 支持监控cpu、os、 存储、gpu、网络等信息
  • 支持同时监控多台服务器
  • 支持保存历史数据
  • 同一用户多台主机同时监测
  • 支持实时监控
  • 代码优化,系统优化

✨特色

  1. 采用SOA架构,监控端、服务端、客户端代码分离
  2. 采用自研的 mprpc 微服务架构,不依赖第三方rpc框架(如grpc、brpc等)
  3. docker一键部署,免去复杂的环境配置
  4. 支持同时监控多用户、多GPU服务器集群
  5. 安全,不暴露本地端口
  6. 支持历史数据云备份
  7. 支持客户端、网页端多端实时监控

🗂文件

文件名 说明
bin 可执行文件
database mysql数据库连接池
display_monitor 客户端(当前版本已不兼容)
docker 环境配置
mprpc 自制的rpc框架
proto 数据传输格式
rpc_manager rpc客户端、服务端
test 功能开发测试
test_monitor 监控端(当前版本已不兼容)
utils 第三方/自己实现的功能库

😍效果

登录注册界面

qt客户端界面

网页端登录界面

网页端主界面

怎么用?

快速使用

  1. 点击下载文件,解压到服务器任意目录

  2. 修改配置文件config.yaml,修改账号,机器名自定义

    yaml 复制代码
    # 用户账号,新用户先需要注册
    accountnum: "168925"
    # 机器名,同一用户的多台机器名必须不同
    machine_name: 1-xiaoxin
    # 监控每获取数据的间隔, 可以不改
    sleep_time: 5
  3. 直接运行

    shell 复制代码
    ./gmpanel_client

b站演示:

自己搭建服务

建议使用我提供的云服务器

如果你需要搭建自己的服务器(当前版本下不建议, 因为IP/端口/数据库需要修改代码手动配置),可以参考如下步骤:

docker环境的安装:https://www.yuque.com/yangshengdashi/isfgw0/hpaccn8i10g0fcre?singleDoc#

先配置好docker环境,生成镜像,镜像名应为 linux:mprpc_monitor

然后:

shell 复制代码
./docker/scripts/monitor_docker_run.sh
./docker/scripts/monitor_docker_into.sh
cd ./home/work
./docker/build/install/start.sh

一键配置环境👆

然后,运行服务端和监控端

shell 复制代码
cd bin
./server
./http_server

Join Us

由于这个项目仍不够完善,如果你有更好的想法,欢迎提issue,一起交流。

b站: https://space.bilibili.com/517357927

相关推荐
小罗和阿泽37 分钟前
接口测试系列 接口自动化测试 pytest框架(三)
开发语言·python·pytest
郝学胜-神的一滴2 小时前
Leetcode 969 煎饼排序✨:翻转间的数组排序艺术
数据结构·c++·算法·leetcode·面试
毕设源码-邱学长7 小时前
【开题答辩全过程】以 基于Java的学校住宿管理系统的设计与实现为例,包含答辩的问题和答案
java·开发语言
rookieﻬ°8 小时前
PHP框架漏洞
开发语言·php
maosheng11468 小时前
RHCSA的第一次作业
linux·运维·服务器
炸膛坦客9 小时前
单片机/C/C++八股:(二十)指针常量和常量指针
c语言·开发语言·c++
兑生9 小时前
【灵神题单·贪心】1481. 不同整数的最少数目 | 频率排序贪心 | Java
java·开发语言
颜酱9 小时前
DFS 岛屿系列题全解析
javascript·后端·算法
炸膛坦客10 小时前
单片机/C/C++八股:(十九)栈和堆的区别?
c语言·开发语言·c++
零雲10 小时前
java面试:了解抽象类与接口么?讲一讲它们的区别
java·开发语言·面试