zoukankan      html  css  js  c++  java
  • YOUYOU深入学习Ganglia之三(gmetad的软件架构)

    Ganglia这个东西,目前的情况是测试的多,真正在数据中心部署过的人少;使用的多,真正能了解其代码架构的人少。这里根据我的经验,分解一下ganglia的gmetad的软件架构,欢迎大家交流。


    上面的图片是我本人自己总结的。MongoDB部分是我增加的,读者大可以略去不看。

    从上面的图中,读者可以发现以下信息:

    1 针对每一个cluster,gmetad都会开启一个线程来处理,这就要求,凡是线程里面用到的函数,必须是可重入的,全局变量必须加互斥量。

    2 Data Thread主要的作用是分析XML文件,这里面使用的工具叫做Expat,这个工具采用信号的方式解析XML文件。通过这个XML分析可以获取所有主机的数据。

    3 Server Thread我没有研究过,我认为的主要功能是想上一级gmetad返回XML数据。

    4 XML文件是什么样子的?可以参考下图,但是Gmond返回的XML和Gmetad返回的XML是不同的,但是大体结构相同。建议读者自己存储gmetad中的xml的buf,可以获取你自己的xml文件。


    在整个gmetad中,向rrd中插入数据的代码中三处:

    1 解析host主机数据时,向rrd中插入所有主机数据

    2 解析host主机后,end cluster时,向rrd中插入cluster的summary

    3 在主进程中,向rrd中插入grid的summary

    以上是gmetad的大体软件架构,大家有什么不明白的可以向我提问,我会做出解答。

  • 相关阅读:
    1-命令格式
    android default_workspace.xml
    多维算法思考(二):关于八皇后问题解法的探讨
    C#对excel的操作
    c#读取xml操作
    一个用 C# 实现操作 XML 文件的公共类代码
    如何使用 LINQ 执行插入、修改和删除操作
    C#--编程
    LINQ常用操作
    用线性组合表示两个数的最大公约数
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3165423.html
Copyright © 2011-2022 走看看