美文网首页Python学习Pythonpython 入门
用python十分钟手写一个简易的实时内存监控系统

用python十分钟手写一个简易的实时内存监控系统

作者: 9ba4bd5525b9 | 来源:发表于2019-06-29 15:08 被阅读22次

    第一步,我们需要获取内存信息

    其实所有的监控项,包括内存数据,都是从文件中读取的,大家执行以下 cat /proc/meminfo就可以看到关于内存的信息,我们关注的是前四行,总内存,空闲内存,缓冲和缓存大小

    计算内存占用量公式:

    (总内存-空闲内存-缓冲-缓存)/1024Mb

    代码呼之欲出 monitor.py

    用with打开文件,可以自动关闭,比直接open优雅那么一丢丢

    执行文件 python monitor.py,每一秒打印一条内存信息

    [woniu@teach memory]$ python mointor.py

    2920

    2919

    2919

    2919

    2919

    我们可以写个很搓的测试代码,占用一点内存,看看数据会不会变

    执行下面代码,能看到内存使用量明显多了几M

    获取内存数据done!

    第二步存储数据库

    我们选用mysql

    新建表格,我们需要两个字段,内存和时间 sql呼之欲出,简单粗暴

    creatememory(memoryint,timeint)

    我们的 monitor.py就不能只打印内存信息了,要存储数据库啦,引入mysql模块,代码如下

    比之前的多了拼接sql和执行的步骤,具体过程见视频,大家到数据库里执行一下下面的sql,就能看到我们辛辛苦苦获取的内存数据啦

    select*frommemory

    我们的数据库里数据越来越多,怎么展示呢

    我们需要flask

    我们看下文件结构

    flask_web就是我们的web服务代码,template下面的html,就是前端展示的文件,static下面是第三方库

    flask_web的代码如下

    提供两个路由

    根目录渲染文件index.html

    /data路由去数据库插数据,返回json,供画图使用

    前端index.html

    highstock的demo页面,copy过来

    我们并不仅限于此,如果想实时的看到内存,应该怎么搞呢

    查询数据时候增加一个时间戳当限制条件,再次查询时,只返回两次查询之间的增量数据

    前端动态添加增量结点数据到图表中

    代码呼之欲出

    python

    相关文章

      网友评论

        本文标题:用python十分钟手写一个简易的实时内存监控系统

        本文链接:https://www.haomeiwen.com/subject/qodpcctx.html