怎么对集群丈量进行隐含排序?
发布日期:2023-04-09浏览量:143
gmond的方针是对统一局域网(lan)内的大量机械进行丈量数据的采集。gmond是用udp发送消息的,因此是不行靠的。为最小化因丧失消息形成的影响,以及提供隐含的优先排序,gmond监控的每项丈量数据都对采集距离、时间/值的阈值有唯的设定。
采集距离
界说了采集的频次,gmond根据这个频次对某项数据进行采集和处置。对某些常量数据,如机械cpu的核数,只采集一次。
值阈值
界说采集值和前次陈述的值之间的绝对值差(absolute difference),只要值的显著变革才会诱发一条消息。
时间阈值
该阈值界说了两次陈述丈量值之间的最大时间距离,而不管丈量数据的值详细是几个。这个阈值是解决udp的不行靠性的一种变通计划,提供了一种计较值的年龄的伎俩,若是自从咱们前次收到陈述以来,已颠末去了一次或几回该國值的时间,则以为咱们确当前丈量值是过期的。
从高层来看,gmond对其监测的丈量数据听从下列步调:
1.采集当前的丈量数据值。
2.若是当前值和前次陈述的值的绝对值差大于指定的值阈值,转步调5。3.若是当前时间跨越了发送丈量数据的硬限定(hard limit),转步调5。
4.转步调7。
5.发送丈量数据的值,并保留用于下次比力(在步调2中)。
6.把时间阈值加到当前时间上,作为下次发送丈量数据的硬限定。
7.进人睡眠,时长为采集距离。
8.转步调1。
这类体式格局使得gmond只在丈量数据产生显著变革时才发送消息,并且,前述的计较也加之了一个随机值,以削减网络争用。末了,对付数千台机械,丈量数据的采集与发送要协调进行。
对低落丈量数据采集的本钱一样首要的是,将本钱固定下来。最坏情况下,每次采集距离的每次采集都发送一条消息,最佳情况下,消息仅在指定的时间阈值已往之后发送。这个范畴使你能够对丈量数据采集建立一个固定的本钱估算,当然,除非阈值有问题。
对付网络丈量数据,要小心选择值國值。我在第一次把网络丈量数据采集加到ganglia上时,把默许的采集距离设置得过短,值阈值也设置得过小,在我的笔记本电脑上没有注重到这类设置毛病,在将ganglia部署到大量的集群上的时辰,这类毛病就十清楚显了。每一个节点都起头发送网络丈量数据更新,以相应其余节点的发送,ganglia招致了一场伟大的网络风暴。但愿你不会产生这类为难的工作。
ganglial应有而没有的一个功用是丈量数据的批量处置。你要是本身写丈量数据采集零碎,记住要支持这个功用。将测丈量数据搜集起来批量发送,既削减了发送的网络包数,也削减了带宽占用。比方,你发送的每一个ipv4udp包都包罗一个14字节的以太网头部、一个20字节的p头部、一个8字节的udp头部和一个4字节的以太网尾部。理论上这些数字还没思索如填充、vlan、ip选项、ipv6的差距等因素,但咱们可以用这些数字做一个大要的计较。假如你发送的数据是32字节,发送10次更新,则需求10个78字节的包,共计780字节。批量发送的话,则只需求1个366字节的包,此中320字节用于丈量数据。这个例子中,批量发送削减了90%的包,带宽削减了一半以上。批量发送的缺陷是,一旦包丧失聚集与组织丈量数据将会丧失多个数据,而不是一个。
若是一项丈量数据对付一台机械是有代价的,则能够对一切机械都有代价,这一点对零碎丈量数据而言是对的,但对付应用而言则没必要然对。如,采集 mysql的丈量数据,只对运转数据库的机械才有意思。可是,每分钟的负荷,则对付不管运转甚么应用的机械而言,都是有意思的。
ganglia元数据进程(gmetad)采集、聚集、存储一组机械的丈量数据,这类汇总数据将经由过程数据采集的条理结构,通报给上游的gmetad。这类条理结构的代理形式能够创立很大的非中心化的丈量数据采集堆叠,这些堆叠可以跨越一座校园或整个地球。
作为一个极真个例子,假想将美国的每台机械都连到一个大的丈量数据采集堆叠上,咱们将有一个国度级的gmetad,这个gmetad从运转在每一个州的50个受权gmetad中获取数据,每一个州的gmetad从每一个县级的gmetad中搜集数据,而每一个县级的gmetad从每一个市级的gmetad中搜集数据,等等。
这个例子中的根节点不会被美国的每台机械中的一切丈量数据压垮,它只从每一个州州获取汇总数据,而后生玉成美国的汇总数据。以是,对付将50个数加在一块儿如许的运算,是不需求很壮大的计较威力的。
ganglia的web前端常规装置在运转gretai的机械上上,web前端将gmetad的数据进行可视化,你可以直观地测览,并在丈量数据采集堆叠中进行导航。比方,你可以经由过程根节点的gmetad查看全美国的汇总信息,以及每一个州的数据源,而后在图上点击伊利诺伊州,进入感乐趣的数据。这类树状的丈量数据值属于空间组件,除此以外,另有时间组件。伊利诺伊州的web前端,查看详细信息。 ganglia:还让你可对图片进行放大和缩小,以找到gmetad:将丈量数据存储于rd数据库中,rrd数据库用于存储数值数据并生成汗青报表。rd一个十分有效的特性是体积其实不跟着时间的增进而增进。rrd的每一个内部档案库( archive)都有固定命量的“桶”,新数据到来后,更新一切相干的档案库,并丢弃陈腐的数据。对付一个简化的例子,你可以用24个桶对应于一天的24小时,另外的7个桶对应于一周的7天。要在差别期间中发现数据的趋向,rrd是一个抱负的工具。将日时序数据和前述的条理代理形式连系起来,可以用于答复如许的问题:“对付全美国来讲,已往一年cpu的行使率是一个甚么样的趋向?”
虽然我但愿云云, ganglia却历来没有如许大范畴地部署过。一个更为理论的例子是像grid3群组如许的,2003年运用 ganglia,从数千台机械中采集丈量数据,这些机械散布在美国和韩国的几十个站点,用于初等物理研讨。这些为grid3采集的丈量数据嵌人其余零碎,如 globus,让人们分享计较进行物理试验。
从大量机械中聚集差别期间的数据,对付容量布局也颇有效。理解单台机械的cpu行使率为80%是有效的,但知道整个网站制作集群上个月的行使率为80%却更有代价。能够看到这类种“宏观图景”,对付计划硬件洽购、发现处置流水线中的瓶颈、洞察web运维的动态,都是十分有协助的。
相关文章: