Ganglia & RRD

Ganglia是伯克利开发的一个集群监控软件。可以监视和显示集群中的节点的各种状态信息,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量情况等,同时可以将历史数据以曲线方式通过php页面呈现。

Ganglia监控系统的核心有两部分:gmond 和 gmetad:

gmond在各个节点上运行,负责采集数据;

gmetad在主节点上运行,负责接收gmond采集上来的数据并将之储存在RRD中。

RRD(Round-Robin Database)是一种固定大小的环形的数据库,一个RRD文件下可以有多个RRA,每个RRA是一个环,环上可以储存的数据个数是固定个,新的数据被记录时会覆盖最旧的那条数据,从而周而复始的记录。

Ganglia将监控数据以RRD的形式储存并通过php展示在web页面上。Ganglia默认的是15秒在RRD中记录一次数据,而RRD默认的格式为:

RRAs "RRA:AVERAGE:0.5:1:244" "RRA:AVERAGE:0.5:24:244" "RRA:AVERAGE:0.5:168:244" "RRA:AVERAGE:0.5:672:244" "RRA:AVERAGE:0.5:5760:374"

这是Ganglia创建的RRD的默认形式,一个RRD文件有四个RRA用来记录数据。

第一个RRA一共储存着244个数据,每插入一条数据储存一个数据,Ganglia默认的15s记录一次,这就意味着默认的这个RRA记录着最近61分钟的数据,这也就是在web上看到的一小时的图。

第二个RRA一共储存着244个数据,每插入24条数据取平均数,储存一个数据,15s * 24 = 360s,意味着6分钟储存一条数据。总共记录了 6min * 244 = 1464min = 24.4h 约为一天的数据。对应的是web上最近24h的数据图。

第三个RRA,每插入168条数据取平均数储存一条数据,15s * 168 = 42min,42分钟记录一条数据,总共记录 42min * 244 = 7.1d 约为一周的数据。

第四个RRA,记录最近四周的数据。对应web界面上Last month的数据。

第五个RRA记录最近一年的数据。

为什么要更改Ganlia采样、统计及RRD记录的最小间隔

对于简单的集群监控,Ganglia的默认配置是足够的,能够满足集群管理员发现集群的性能表现和一些故障,并判断故障发生在哪里。

但是在进行细致的作业分析时,15s的最小采样间隔是不能够满足需求的。

以笔者研究的spark作业的性能表现为例,对于40G的数据,在4节点、16GB per node、32 cores per node的Spark集群上进行wordcount,作业的总共运行时间平均为53s,而map stage中每个task的运行时间在10s左右,reduce&save stage中每个task的运行时间不过2-4s。

由于spark高效的执行效率,spark运行过程中占用集群资源的行为变化是迅速的,15s的记录间隔是无法察觉的。

因此,为了让Ganglia能够更好的适应Spark的节奏,需要将Ganlia采样、统计及RRD记录的最小间隔由15s改到更小,笔者直接选择在1s。

更改Ganglia配置参数,以更改采样和记录的最小间隔

停止Ganglia的运行

为了避免出现运行错误,在更改配置前关闭ganglia的运行。

在主节点上,使用命令:

service gmetad stop

在各个节点上,使用命令:

service gmond stop

更改gmond配置(更改搜集数据的周期,以及传输传输周期)

gmond的配置在/etc/ganglia/gmond.conf中

对于只取一次值的metric,将time_threshold,因为这些值,如mem_total,会在web端php画图时用到,因为memory那张图中的memory used,并不是通过直接采集数据得到的,而是通过mem_total减去其他值计算得到的,因此,mem_total一开始就应该被获取,因此time_threshold需设为1(默认为1200)。

collection_group {

collect_once = yes

time_threshold = 1

metric {

name = "cpu_num"

title = "CPU Count"

}

...

metric {

name = "mem_total"

title = "Memory Total"

}

...

}

对于其他metric,如cpu group中的各个metric,采样与传输的时间也应设置为1(s)

collection_group {

collect_every = 20

time_threshold = 90

/* CPU status */

metric {

name = "cpu_user"

value_threshold = "1.0"

title = "CPU User"

}

metric {

name = "cpu_system"

value_threshold = "1.0"

title = "CPU System"

}

...

}

collect_every = 1

time_threshold = 1

更改gmetad配置(更改记录的最小间隔)

gmetad的配置在/etc/ganglia/gmetad.conf中

# Format:

# data_source "my cluster" [polling interval] address1:port addreses2:port ...

# The keyword 'data_source' must immediately be followed by a unique

# string which identifies the source, then an optional polling interval in

# seconds. The source will be polled at this interval on average.

# If the polling interval is omitted, 15sec is asssumed.

看到这里有关于[polling interval]的解释,即gmetad会根据从gmond搜集的数据,每一个间隔计算出这个间隔内的平均数将其写入rrd。

而这个参数,是一个非必要的参数,如果用户不指定的话,每15s记录一次。

因此,为了将Ganglia记录最小间隔及RRD中数据的最小时间间隔改为1s,需要在master名称后添加一个参数:1

data_source "my cluster" 1 localhost my.machine.edu:8649 ...

为了让web依然能够顺利的画出一天、一周、一月、一年的图,还应该修改RRD的格式。

原来的采样间隔是15s,现在的采样间隔是1s,就要把每个RRA的容量扩充,或者将除了第一个RRA之外的RRA的记录间隔改大。

两种调整RRD格式的方法:

1.

RRAs "RRA:AVERAGE:0.5:1:3660" "RRA:AVERAGE:0.5:24:3660" "RRA:AVERAGE:0.5:168:3660" "RRA:AVERAGE:0.5:672:3660"

2.

RRAs "RRA:AVERAGE:0.5:1:3660" "RRA:AVERAGE:0.5:360:244" "RRA:AVERAGE:0.5:2520:244" "RRA:AVERAGE:0.5:10080:244"

因为我只需要近一小时的详细数据,因此,我采用第二种方式,RRD的文件会小一些。

清除原有RRD

因为RRD的格式发生变化,和原有的RRD不同,因此,需要将原来的RRD删除,

RRD的文件储存位置的配置在gmetad.conf中:rrd_rootdir。

rrd_rootdir的默认位置在/var/lib/ganglia/rrds,将这个文件夹下的所有文件及文件夹删除即可。

启动Ganglia

在主节点上,使用命令:

service gmetad start

在各个节点上,使用命令:

service gmond start

查看更改之后的效果

service httpd restart

在http://masterhost/ganglia中可以看到更改之后的变化:

最后一张图明显能看出更改之后统计的数据更细腻。

php rrd 做统计数据,Ganlia采样、统计及RRD记录周期(频次、间隔)的配置和更改...相关推荐

  1. Axure中后台管理信息系统通用原型方案 /框架模板/数据仪表/团队协作/会员管理/电商系统/资金统计/数据监控/销量统计/订单管理/客户管理/团队协作/职务管理/业务信息/员工管理/即时通讯

    本作品是一套通用型的中后台管理系统原型设计方案,可以帮助你快速输出标准和美观的中后台产品原型方案,极大的节省协作成本和提升工作效率.这套方案提供了12套不同类型的登录界面和系统框架,并涵盖了大量的常用 ...

  2. c 窗体中添加mysql控件,MYSQL 统计数据-svn服务器启动-WinFrom控件库|.net开源控件库|HZHControls官网...

    统计数据的重要性相信了解ORACLE数据库的都非常清楚,他是生成执行计划的唯一标准,所以统计数据是否准确直接影响到执行计划的正确性, 关于MYSQL虽然没有ORACLE那么多维度的统计数据(比如直方图 ...

  3. oracle stalestats_深入理解oracle优化器统计数据(Optimizer Statistics)

    理解oracle优化器统计数据 首先来介绍oracle数据库使用基于规则优化器(RBO)来决定如何执行一个sql语句.基于规则优化器顾名思义,它是遵循一组规则来判断一个sql语句的执行计划.这组规则是 ...

  4. UE4 统计数据命令描述

    统计数据命令描述 统计数据命令描述 概述 执行命令 在编辑器统计查看统计数据 统计数据类型 Cycle Counter Stat(循环计数器统计数据) Memory Counter Stat(内存计数 ...

  5. python按照日期筛选数据_Pandas日期数据处理:如何按日期筛选、显示及统计数据...

    前言 pandas有着强大的日期数据处理功能,本期我们来了解下pandas处理日期数据的一些基本功能,主要包括以下三个方面: 按日期筛选数据 按日期显示数据 按日期统计数据 运行环境为 windows ...

  6. mysql数据库获得时间段内数据_mysql 获取规定时间段内的统计数据

    mysql 获取规定时间段内的统计数据 按年统计SELECT count(*), DATE_FORMAT(order_info.create_time, '%Y-%m-%d') AS count_by ...

  7. ArcGIS10.6表统计数据

    在浏览表格时,您可以获取描述数字列中值的统计数据.您会看到列中值的数量,以及这些值的总和.最小值.平均值.最大值及标准差.直方图还可表明列中值的分布方式.可以计算表中所有数字列的统计数据.要查看其他列 ...

  8. 数据库的统计数据——sysstat

    数据库统计数据提供了关于数据库负载和资源使用情况的信息.为了有效的度量数据库的性能,统计数据是非常关键的. v$sesstat v$sesstat展示了用户会话的统计数据,可以通过关联v$statna ...

  9. 1028万!重庆统计局招标大数据平台,开建统计数据中台

    2022年9月15日,重庆市统计大数据平台(CQS22C01140)发布中标(成交)结果公告,如下: 项目编号 CQS22C01140 项目名称 重庆市统计大数据平台 服务范围 大数据已成为新型生产要 ...

  10. 生成CAD设备表后如何获取统计数据?

    上一节CAD制图教程中给大家介绍了设备表生成功能的相关使用技巧,各位小伙伴应该也了解了设备表生成功能主要的作用就是对当前图选中的区域的设备进行统计,生成设备表.那么如何获取设备表的统计数据呢?接下来的 ...

最新文章

  1. Android Studio中新建和引用assets文件
  2. c语言1余3,c语言1—3真题(含答案).ppt
  3. RUP概述与实际应用的例子
  4. 5G时代,MPLS WAN如何发展?-vecloud服务器
  5. 支付宝 php 返回false,支付宝php sdk验签rsaCheckV1不正确isSign一直返回false
  6. php sql server临时表,SQLServer中临时表与表变量的区别分析
  7. Windows7上安装TensorFlow——基于Docker镜像
  8. 【Java基础】用LinkedList实现一个简单栈的功能
  9. Linux平台上SQLite数据库教程(二)——C语言API介绍
  10. 想让照片里的美女“回头”?清华MIT谷歌用AI帮你实现了
  11. 《JavaScript 高级程序设计》第三章:基本概念
  12. CPT205-Computer Graphics
  13. 微软api的word在线预览
  14. win10安装jdk
  15. 深入游戏变速底层原理以及内核变速的实现
  16. 国外常用免费博客平台
  17. 企业微信应用消息html标签,消息类型及数据格式
  18. php 移动文件夹,php移动文件或文件夹
  19. arduino nano电路图
  20. Ground truth 在计算机方面的意思

热门文章

  1. 基于Nginx搭建RTMP-HLS视频直播服务器(推流+拉流)
  2. 五款好用的开源CRM系统推荐
  3. 如何解决U盘装系统后磁盘总容量变小
  4. 对工作节点执行drain操作时,通过pdb保护pod副本数
  5. java的pdf转永中_永中PDF转Word,你值得拥有!
  6. 用userAgent判断手机类型
  7. 域名备案后修改服务器,域名备案后修改服务器
  8. ppt如何替换其他mo ban_一次性解决PPT初学者的20个常见问题,赶紧收藏
  9. 2019重新起航:搭建个人博客
  10. Vue router原理