交叉编译,Ganglia的Python扩展模块开发

作者:计算机知识

交叉编译,Ganglia的Python扩展模块开发。 

Ganglia的Python增加模块开采

注:本文涉及到的代码都在CentOS 陆.5 6四bit系统上经过认证,Ganglia版本为三.一,通过yum安装具体步骤请参见:

  1. 概述

Ganglia 项目是由加州高校发起的,以后早就改成1个应用特别广阔集群监察和控制软件。能够监视和出示集群中的节点的各类情状音讯,举例如:cpu 、mem、硬盘利用率, I/O负载、互连网流量情形等,同时能够将历史数据以曲线方式通过php页面展现。同时持有很好的扩张性,允许用户进入本人所要监察和控制的状态新闻。根据可视化的相关数据,很轻易驾驭集群的正常意况,并且也能够解析出集群的可优化的地方。

具备那个多少采集会数次震慑节点质量。网络中的“ 抖动( Jitter ) ” 发生在大气小消息还要出现,通过ntp服务将节点的石英钟保持1致,就能够制止这一个标题。

Ganglia的做事原理如下图

亚洲必赢手机入口 1

更加多关于Ganglia工作原理请参谋,本文入眼是描述怎么样选择Ganglia提供的Python接口开荒和谐想要的metric。

  1. Ganglia的Metrics

何为metric,在字典中其翻译为行业内部,衡量之意。在ganglia的Web分界面中大家看得最多的是之类那些图:

亚洲必赢手机入口 2

这么些图还不可能算是真正的metric,其只是各样品类的metric的汇中国人民解放军总后勤部通过rrdtool画出来的图,便于总体旁观。上边这么些才是本文要描述的metric(CPU的metrics):

亚洲必赢手机入口 3

每三个小图表代表着cpu相关信息的3个数据类型,这几个多少都是经过相应的布局在每一个集群节点的程序模块采撷,而以此采访模块的开辟就是本文要主要批注的。

  1. 自定义metrics开发

向ganglia插足自定义metric有二种办法,壹种是经过命令行的点子运维gmetric,另1种是透过ganglia提供的面向c和python的恢宏模块,加入自定义的模块协理。上边选用Python开采三个简便的metric实例:

在/usr/lib64/ganglia/python_modules/中创建random_number.py并足够如下代码

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
import time
descriptors = list()
def random_number_1(name):
    return int(random.uniform(5, 100)) 10
def random_number_2(name):
    return int(random.randrange(50, 500))
def metric_亚洲必赢手机入口,init(params):
    global descriptors
    random.seed()
    print params
    d1 = {
        'name': 'random_number_1',
        'call_back': random_number_1,
        'time_max': 90,
        'value_type': 'uint',
        'units': 'C',
        'slope': 'both',
        'format': '%u',
        'description': 'Random a number',
        'groups': 'example random'
    }
    d2 = {
        'name': 'random_number_2',
        'call_back': random_number_2,
        'time_max': 90,
        'value_type': 'uint',
        'units': 'C',
        'slope': 'both',
        'format': '%u',
        'description': 'Random a number',
        'groups': 'example random'
    }
    descriptors = [d1, d2]
    return descriptors
def metric_cleanup():
    pass

#This code is for debugging and unit testing
if __name__ == '__main__':
    metric_init({})
    while True:
        for d in descriptors:
            v = d['call_back'](d['name'])
            print ('value for %s is ' d['format']) % (d['name'], v)
        time.sleep(5)

在上面的代码中Ganglia运转的时候会调用metric_init和metric_cleanup多少个函数,从那多少个函数的名字大家就能够得知前多个是做起先化专门的学业,前面一个是做甘休能源清理专业的。在Ganglia加载相关模块来运作时,只会调用那多少个函数。这里的main函数入口只是为了做调节和测试而写在这里的。

在/etc/ganglia/conf.d/中创建random_number.conf文件,并加上如下代码

modules {

  module {

#这里的name值一定要与/usr/lib64/ganglia/python_modules/random_number.py的文件名保持壹致,不然将不可能正确运行

    name = "random_number"

    language = "python"

  }

collection_group {

  collect_every = 2

  time_threshold = 90

 

  metric {

    #这里的name值要与random_number.py中的d壹里的name保持一致

    name = "random_number_1"

    title = "random number 1"

    value_threshold = 0

  }

 

  metric {

    #这里的name值要与random_number.py中的d二里的name保持1致

    name = "random_number_2"

    title = "random number 2"

    value_threshold = 0

  }

}

布局好文件后重启服务

service gmond restart

service gmetad restart

service httpd restart

更加多详细情况见请继续阅读下一页的精粹内容:

注:本文涉及到的代码都在CentOS 陆.5 6四bit系统上经过认证,Ganglia版本为叁.1,通过yum安装具体步骤请参见:http://www.linuxidc.com/Linux/2015-08/121300.htm

python c混合编制程序的模块 怎么交叉编写翻译

明天把 python叁.六交叉编写翻译到了armv5的1台小设备上,这几天兴冲冲的在上面安装python的扩展。当安装到netifaces-0.十.陆这些扩充的时候开掘那东西是用c和python混合编制程序的, 得在主机上用交叉编写翻译工具链 编写翻译.so文件,于是翻了翻google有了此文章

1.下载netifaces源码

2.解压缩并进入到源码目录

亚洲必赢手机入口 4

图1

三.设置当前shell的环境变量,因为是交叉编写翻译要改一下 CC指向的工具还应该有头文件库文件的地址 图贰

export CROSS_COMPILE=arm-none-linux-gnueabi-        #编写翻译工具前缀
export CC="${CROSS_COMPILE}gcc -pthread"
export LDSHARED="${CC} -shared"
export LDFLAGS="-L/home/lipingsheng/popo/local/lib"   #目的板中运作的python的库文件地方
export CFLAGS="-I/home/lipingsheng/popo/local/include/python3.6m"    #指标板中运作的python的头文件地方

解释一下最终两项的 意思,后两项针对的内容是明日本人交叉编写翻译实现的能运作在armv第五小学设备中的python的头文件和库文件地方(因为要交叉编译)

亚洲必赢手机入口 5

图2

四.实施编写翻译

python3.6 setup.py build bdist_egg

亚洲必赢手机入口 6

图三

5.结果

亚洲必赢手机入口 7

图四

陆.egg文件在 当前目录下的./dist目录。拷贝到目的板上 安装就可以

亚洲必赢手机入口 8

图五

代码裤子:

--------------------------------------分割线

使用Ganglia监控Hadoop集群

在VMware Workstation的Ubuntu下安装和安插Hadoop与Ganglia

Ganglia安装配置之第三建工公司立Grid

Ganglia 极度轻松安装教程yum版

Ganglia飞速先河向导(翻译自官方wiki)

CentOS集群上设置Ganglia-三.陆.0监控Hadoop-二.二.0和HBase-0.九陆.0

Ganglia在CentOS 6.5的安装

在 Ubuntu 14.04 Server 上安装 Ganglia

  1. 概述

在线编制程序:

--------------------------------------分割线

  • 1
  • 2
  • 下一页

注:本文涉及到的代码都在CentOS 陆.5 6四bit系统上通过验证,Ganglia版本为三.一,通过yum安装具体步骤请仿照效法: 一. 概述...

Ganglia 项目是由加州高校发起的,今后曾经济体改为三个利用非常分布集群监察和控制软件。能够监视和呈现集群中的节点的种种情状新闻,比如如:cpu 、mem、硬盘利用率, I/O负载、网络流量意况等,同有的时候间能够将历史数据以曲线方式通过php页面呈现。同一时候具有很好的扩大性,允许用户进入本人所要监察和控制的景况音信。依照可视化的连带数据,很轻易明白集群的健康情况,并且也得以剖析出集群的可优化的地点。

在线预览:http://github.lesschina.com/python/base/module/模块专项论题.html

抱有这几个数据收集会数次影响节点质量。互联网中的“ 抖动( Jitter ) ” 产生在大方小音信还要出现,通过ntp服务将节点的石英钟保持1致,就足以幸免那几个主题材料。

老师休假度蜜月去了,那学期也到了尾声,小明同学以为温馨学的非常好的,在四处逛游的长河中看见了小潘的Computer,然后惊到了!

Ganglia的做事原理如下图

In [1]:

亚洲必赢手机入口 9

# 导入matplotlib的pyplot模块
import matplotlib.pyplot as plt

x_list=list(range(1,11))
y_list=[y*2 1 for y in x_list]

print(x_list)
print(y_list)

越来越多关于Ganglia职业原理请参谋 http://www.linuxidc.com/Linux/2015-08/121296p2.htm,本文入眼是讲述怎样行使Ganglia提供的Python接口开荒自身想要的metric。

 

  1. Ganglia的Metrics
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[3, 5, 7, 9, 11, 13, 15, 17, 19, 21]

何为metric,在字典中其翻译为行业内部,衡量之意。在ganglia的Web分界面中大家看得最多的是之类这么些图:

In [2]:

亚洲必赢手机入口 10

# 画图
plt.plot(x_list,y_list)
# 设置X,Y的坐标区间(可以不设置,用默认显示方式)
plt.axis([0,10,0,25])
# 显示图片
plt.show()

那一个图还无法算是真正的metric,其只是各类档期的顺序的metric的聚集后通过rrdtool画出来的图,便于总体观看。上边这一个才是本文要讲述的metric(CPU的metrics):

 

亚洲必赢手机入口 11

亚洲必赢手机入口 12

每一个小图表代表着cpu相关音信的三个数据类型,那个多少都以因而相应的布署在11集群节点的程序模块搜罗,而以此采访模块的开垦就是本文要根本解说的。

本文由bwin必赢发布,转载请注明来源

关键词: bwin开户网 嵌入式