1936_基于ssh协议和QT5实现一个CPU、GPU以及内存负荷监控
尝试使用 Python 的方案,实现一个远程监控界面,能够监控远程。Linux 机器的 CPU 使用负荷率、内存使用负荷率,还有 GPU 使用的负荷率。
Linux 服务器可以通过 SSH 访问。
GPU 的监控主要是监控英伟达的两个 GPU 型号都是特斯拉 V100,大小 16 GB。当前已经安装了英伟达的驱动,而且 nvidiasmi 命令可以正常使用。除此之外, nvtop 命令也可以正常使用。
要求能够通过界面输入远程 Linux 服务器的 IP 地址、用户名以及密码,之后通过 SSH 获取访问的相关方法。其中 IP 地址还有用户名输入之后,可以保存,下一次启动的时候不用再次输入。
显示界面需要包含两部分。第一部分以文本的形式显示 CPU、内存、GPU 使用的负载率。文本数字可以动态更新。第二部分是以动态曲线显示负荷率。提供一个调节的按钮,可以调节动态刷新的快慢。
先给出需要安装的 Python 依赖库以及安装的命令,由我来确认安装。同时给出软件设计的基本方案,让我来确定是否执行接下来的设计。
以上是我给我的 Agent 提供的一个软件设计需求。其中 Agent 用的是 Pi Agent,大模型用的是本地部署的 Qwen3.8-27B。
当我把这个需求,或者说提示词直接发给 Agent 之后,Agent 给我规划出来了几个方案,其中一个是使用 Qt5。我虽然对 Qt5 的这个技术栈并不是很熟悉,但是对于这个 Qt5 的宣传,尤其是 Qt 的宣传,还是有一些了解的。因此我就选择了这一个方案。然而使用这个方案的时候,需要安装一些 Python 的库。于是我给 Agent 下达了一条新的命令,安装好对应的库之后,实时软件设计并进行测试。
整个处理过程行云流水,速度还是很快的。中间我发现了好多异常。这个异常基本上是在做测试构建的时候,发现输出一直返回一个错误码。究竟这个错误码代表什么含义,我也不是很清楚,也没有去关注。但是我发现它自己在尝试使用类似于二分法的方式,不断的去构建更小的片段,最终把问题给解决掉了。构建测试用例的时候,它不仅仅是看这个界面中能不能获取到数据,而且还注入了一些测试的 case,比如说把 CPU 的负荷率给拉高一下,然后看当前的数据是否能获得对应的变化。
最后的成品效果我感觉还是不错的,实现了一个比较好用的查看界面,简单而且实用。
以上是成品效果,我觉得还是不错的。
代码都是AI代码,相信大家也很容易复刻出来,这里就不展示了。
