YOUYOU深入学习Ganglia之三(gmetad的软件架构)
2013-07-01 19:54
363 查看
Ganglia这个东西,目前的情况是测试的多,真正在数据中心部署过的人少;使用的多,真正能了解其代码架构的人少。这里根据我的经验,分解一下ganglia的gmetad的软件架构,欢迎大家交流。
![](http://img.blog.csdn.net/20130701162301250?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW91aGFpcGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上面的图片是我本人自己总结的。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文件。
![](http://img.blog.csdn.net/20130701163502312?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW91aGFpcGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
在整个gmetad中,向rrd中插入数据的代码中三处:
1 解析host主机数据时,向rrd中插入所有主机数据
2 解析host主机后,end cluster时,向rrd中插入cluster的summary
3 在主进程中,向rrd中插入grid的summary
以上是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的大体软件架构,大家有什么不明白的可以向我提问,我会做出解答。
相关文章推荐
- YOUYOU深入学习Ganglia之三(gmetad的软件架构)
- YOUYOU深入学习Ganglia之三(gmetad的软件架构)
- YOUYOU深入学习Ganglia之五(Ganglia的瓶颈在哪里)
- YOUYOU深入学习Ganglia之二(转存RRD到MongoDB三种方案)
- YOUYOU深入学习Ganglia之四(Ganglia metrics 讲解)
- YOUYOU深入学习Ganglia之一(建立Grid)
- YOUYOU深入学习Ganglia之六(ganglia编译&函数的调用)
- NET 应用架构指导 V2 学习笔记(七) 软件架构和设计方法
- 软件架构学习小结
- 深入Android 【二】 —— 架构和学习
- 从Open Web SSO 学习软件架构设计
- NET 应用架构指导 V2 学习笔记(六) 软件架构和设计方法
- 调度器学习笔记二:软件架构模式
- 《软件架构设计》学习笔记--3--软件架构视图
- 软件架构学习
- 软件架构学习小结
- 07年 oo学习总结:一、系统软件架构-各层的生成
- 深入Android 【二】 —— 架构和学习 推荐
- 从Open Web SSO 学习软件架构设计
- 深入Android 【二】 —— 架构和学习