Collectd对KVM虚拟机内存监控的测试与优化

来源 :物联网技术 | 被引量 : 0次 | 上传用户:wc4854598
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要:研究旨在通过修改Collectd源码来验证其现有的内存监控项目数据的准确性,完善内存相关监控项。文章首先将Collectd进行部署,观察其对KVM虚拟机内存监控的效果,然后通过对KVM虚拟机内存监控的源码分析,验证监控图上展示的相关内存监控项目的数据准确性,并根据其结果决定修改源码来完善相关内存监控项的可行性。通过文中的分析得出结论:只有在Libvirt对KVM虚拟机内存监控相关功能进行API优化之后,Collectd对KVM虚拟机的内存监控才能够得到完善。从而为不用在KVM虚拟机里安装任何东西的情况下实现对其内存的监控找到了一种切实可行的方法。
  关键词:Collectd;KVM;内存监控;准确性
  中图分类号:TP319 文献标识码:A 文章编号:2095-1302(2016)05-00-05
  0 引 言
  随着互联网技术的快速发展,各种云计算平台也应运而生。国外有AbiCloud、Hadoop(Apache基金会)、Eucalyptus 项目(加利福尼亚大学)、MongoDB(10gen)、Enomalism弹性计算平台等,国内有阿里巴巴的阿里云、中国移动的BigCloude-大云平台、盛大云等。虚拟化是云计算平台的基础,虚拟机的稳定性直接影响到云计算平台的性能,这就迫切需要一套能够对虚拟机进行实时监控的系统。但是,目前还没有一套针对该问题成熟的监控系统方案,本文用Collectd对KVM(Kernel-based Virtual Machine,KVM)虚拟机进行监控。
  1 Collectd对KVM虚拟机监控的测试
  1.1 关于Collectd
  Collectd是一个守护(daemon)进程,通过调用Libvirt-API来周期性地收集系统的各项数据,然后以一定的格式(比如以RRD形式)将数据进行存储,这些数据可以用来找到当前系统性能的瓶颈。
  Libvirt是一套免费、开源的支持Linux主流虚拟化工具的C函数库,其旨在为包括Xen在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C、C 、Ruby、Python等多种主流开发语言的绑定。当前主流Linux平台上默认的虚拟化管理工具virt-manager(图形化)、virt-install(命令行模式)等均基于Libvirt开发而成。Libvirt库是一种实现Linux虚拟化功能的Linux? API,它支持各种虚拟机监控程序,包括Xen和KVM以及QEMU和用于其他操作系统的一些虚拟产品。Collectd通过Libvirt监控虚拟机的原理图如图1所示。
  图1 Collectd通过Libvirt监控虚拟机原理图
  通过Collectd对KVM虚拟机进行监控的优势是:首先,Collectd只需要安装在宿主机(Host)的底层,不必在虚拟机内部安装代理(Agent),这样就避免了监控程序对虚拟机的污染,使监测到的虚拟机的各项数据更加精确;其次,由于监控程序是安装在宿主机的底层,用户(虚拟机的使用者)没有权限来关闭该监控程序,这样就避免了用户将监控程序关闭而造成的监控系统监控不到虚拟机问题的发生。
  1.2 测试环境
  本文通过两台DELL服务器部署Collectd进行测试,一台服务器上部署Collectd计算节点,另一台服务器部署Collectd控制节点。部署计算节点的服务器同时安装KVM,并通过KVM在该服务器上创建10台虚拟机。测试环境的详细说明如表1所列。
  控制节点与计算节点配置文件如表2所列。
  表2 配置文件详解
  IP 节点类型 关键配置项
  10.10.10.20 计算节点 Hostname "compute1"
  FQDNLookup true
  Interval 10
  Timeout 2
  ReadThreads 5
  LoadPlugin logfile
  LoadPlugin syslog
  LogLevel info

  LoadPlugin cpu
  LoadPlugin disk
  LoadPlugin libvirt
  LoadPlugin load
  LoadPlugin memory
  LoadPlugin network
  LoadPlugin ping
  LoadPlugin swap
  
  
  CacheFlush 1800

  DataDir "/var/lib/collectd/rrd"

  10.10.10.21 控制节点 Hostname "ubuntu"
  FQDNLookup true
  Interval 10
  Timeout 2
  ReadThreads 5
  WriteThreads 5
  LoadPlugin logfile
  LoadPlugin syslog
  LogLevel "error"
  File STDOUT
  Timestamp true   PrintSeverity false

  LogLevel error

  LoadPlugin cpu
  LoadPlugin disk
  LoadPlugin entropy
  LoadPlugin libvirt
  LoadPlugin load
  LoadPlugin memory
  LoadPlugin network
  LoadPlugin ping
  LoadPlugin rrdtool
  LoadPlugin swap
  Connection "qemu:///system"
  RefreshInterval 60
  IgnoreSelected true
  HostnameFormat uuid

  DataDir "/var/lib/collectd/rrd"
  CacheTimeout 120
  CacheFlush 900
  WritesPerSecond 50

  1.3 Collectd对虚拟机的监控
  按照上述说明将测试环境部署之后,通过浏览器(在浏览器地址栏输入http://10.10.10.21/cgp)即可看到计算节点上创建的10台虚拟机(KVM01~KVM10)监控数据图。图2所示是10台虚拟机的内存监控图。
  图2 KVM虚拟机内存监控
  分析图2可知,Collectd对KVM虚拟机内存的监控包括actual_ballon(通过virtio_ballon驱动来实现宿主机Hypervisor和客户机之间的内存协作)、rss(resident set size)使用的非交换区的物理内存、swap_in在内存气球压缩时虚拟机从宿主机得到的内存、total虚拟机的总内存四项指标,但是图形上绘制出的只有total和rss这两项指标。
  2 Collectd的优化
  2.1 内存监控源码的分析
  2.1.1 确定优化目标
  基于图2的分析,可以发现:
  (1) Collectd对虚拟机内存监控的项目太少(只有actual_ballon、rss、swap_in和total),监控图展示的只有rss和total两项;
  (2) rss和total这两项的图形在绝大部分时间上都是直线,不像其他监控指标那样具有实时性。
  根据上面的两个发现,本文要通过修改Collectd源码来实现如下优化:
  (1) 增加需要的监控项,并通过图形方式展示出来;
  (2) 验证内存监控数据的准确性。
  2.1.2 对源码的分析
  通过阅读Collectd源码说明文档可知,实现对KVM虚拟机内存监控的源码在Collectd/src/virt.c中,如果要实现上述优化目标,则需要分析几个函数和结构体(本文分析的只是用到的相关函数和结构体而非全部)。
  总内存传递函数详解如下:
  static void memory_submit (gauge_t memory, virDomainPtr dom)
  { //参数分别为内存值和虚拟机地址
  value_t values[1];//创建只有一个元素的value_t结构体数组
  value_list_t vl = VALUE_LIST_INIT;//创建并初始化一个value_list_t链表
  init_value_list (
其他文献
高校图书馆管理与服务已实现网络化,随之而来的网络系统安全是各图书馆面临的重要问题。本文针对高校图书馆网络安全隐患,从提高网络安全管理人员素质、强化网络安全管理制度、
11月3日,现任ARM全球营销和战略联盟副总裁的IanFerguson首次向媒体公开了“软银收购案”的始末。随着软银收购ARM、高通收购NXP的落地,IT巨头企业接连布局IoT的举动也意味着智
北京时间8月6日,第31届奥运会在巴西里约热内卢开幕,本次奥运会不乏可穿戴设备的身影.
中小学是学生生长发育的重要阶段,良好的教学和生活环境不仅有利于学生的身心健康,同时也为其一生的发展打下了良好的基础。近年来,各地学生的体质与健康虽有所改善,但问题仍
优质服务是供电企业的生命线,行风建设是提高企业形象的重要保障,要针对当前服务工作中的薄弱点抓好整改,通过实施行风建设末端治理“三机制”,即风险排查机制、问题曝光机制、评
加强高校技术转移中心建设实践与创新工作,着重抓好强本固基工程、枝繁叶茂工程、开花结果工程和交流互动工程,强化学校创新源头建设、整合校地科技资源、开展校地共创共建、
本研究旨在了解员工综合评价管理相关理论,分析ZWXK评价管理方面的问题并提出改善建议。通过对员工综合评价管理涉及的几个重要理论进行了详细的文献分析,以定性研究的访谈法,将
利用中国31个省市自治区1999~2009年的面板数据,运用回归分析,考察文化产业投资、文化产业劳动力及科技创新对中国文化产业发展的经济贡献。实证分析结果显示在整个考察期内
设备管理是以企业生产经营目标为依据,以设备为研究对象,追求设备寿命周期费用最经济和设备效能最高为目标的科学型管理方法,TnPM以设备的维护管理为目标,通过全体员工的参与为基
针对目前高职会计课程教学培养目标、会计专业教学与成绩考核评价现状,文章从课程设置、师资力量、教学方法、学生学习态度与方法及相应的考核评价体系等方面进行分析,指出目前