explorer

万丈高楼平地起,勿在浮沙筑高台

0%

自娱自乐 --> LPMQ 项目

第一个正式的 github 开源项目……

LPMQ(Linux Performance Monitor with Qt) 是一个基于 C/S 架构用于监控 Linux 实时性能的工具。

为什么要做这个工具

之前用过宋宝华老师团队的 LEP 工具,但是似乎维护跟不上,会遇到以下问题:

  1. 服务端老是会启动失败,或者启动一段时间以后便停止工作了
  2. 客户端老是连接失败,显示结果经常会卡住
  3. 客户端能操控的位置太少了,不能满足一些应用场景

主要还是 LEP 的稳定性问题,导致很多时候还没有等到要监控的点,软件先崩溃了……

在很早以前都想自己来做一个这样的工具。

最近这段时间重新学习了服务端编程、c++、Qt,但也仅仅是看看理论知识并没有大量的实践。

那么基于上面的原因和这段时间所学,正好可以利用这个项目好好的实践一下所学。如果做的工具好用,那也正好解决了一个工作中的实际需求。 当然,要是有高手可以再来指出一些代码的不足之处,就更是一个不错的提升机会了。

不过说实在的,要把 Linux 的性能监控很好的展示出来,需要对 Linux 非常的熟悉才行,至少可以深入理解《性能之巅》这本书。

我也很清楚自己处在什么水平,要把这个工具做好得需要很多年。但是我可以每学一部分知识,就每完成一个功能,就可以多解决一个问题嘛。

大体思路

整个软件架构就是 C/S 架构,既然要学习 c++ ,那么服务端就用 c++ 实现,客户端就用 Qt 实现。

服务端使用 cmake 构建,客户端就使用基于 Qt 的构建工具即可。并且服务端要在 X86 和 ARM 平台中都验证一下,正好可以使用手上的树莓派。

客户端具备以下基本功能:

  • 主要监控的就是进程、内存、IO 的状态
  • 用户可以双击对应的进程名以获取对应于该进程的状态
  • 考虑到尽量少的占用嵌入式平台资源,那么数据传输尽量以二进制的形式而不是字符串的形式,以节省带宽。
    • 并且服务端要尽量少的做运算,将这些 CPU 密集型任务交付给 PC 来完成。
  • 各个状态由对应的 dock 显示,这样用户可以自定义显示方式。
  • 为了便于观测和节省资源,每种显示状态都可以设定单次触发和循环触发方式。

开发方式

开发使用 3 个分支:

  • master:代表最新的稳定版,用户可以直接使用此版本
  • fix:针对 master 分支的 bug 修复,修复完该 bug 后,需要向 master 和 feature 分支合并
  • feature:新功能的开发,完成新功能开发后,需要向 master 和 fix 分支合并

除此之外,还需要写一个开发日志,记录大体上的开发进程,便于以后总结。 github 上的 project 工具就可以满足这个要求。

Last Updated 2020-06-28 Sun 12:00.
Render by hexo-renderer-org with Emacs 26.3 (Org mode 9.3.7)