云平台测试——(1)宿主机性能

出于各种目的,我们会对云平台中的虚拟机进行测试,主要测试CPU、内存、网络、硬盘的性能。

本节简要总结各种测试场景下的常用工具

关键词:Super PI、UnixBench、memtester、memtest86+、netperf、fio、iometer、iozone、dd

    1,CPU

  早期的虚拟化技术不成熟,这使得虚拟机的cpu在中断和上下文切换时损耗严重,随着虚拟化技术的发展,这种性能损失已经控制的比较好了,
所以当前测试CPU的主要目的是衡量计算能力。
  主要应用的测试工具有:Super PI 与 UnixBench 

  (1)Super PI简介

  是一款cpu密集型测试工具,原理是计算圆周率π小数点后n位,统计消耗时间,来衡量CPU的计算能力(主要浮点计算能力)
  (2)UnixBench
  是一款系统层面的基准测试套件,特点是支持多cpu系统的测试,包括“单任务性能测试、多任务性能测试、并行处理能力测试”
  测试的结果不仅取决于硬件,还受系统、开发库、编译器的影响
  UnixBench的测试项目主要有9项:
    dhrystone,字符串处理测试
    whetstone,浮点运算效率和速度
    excel throughput测试,每秒excel函数的调用次数(exec函数家族的一部分)
    file copy,文件传输
    pipe throughput,进程管道写pipe并读回来的次数
    pipe-based context switch,管道上下文切换测试,与真实程序类似
    process creation,创建子线程并立即退出
    shell脚本,进程1分钟内启动并停止shell脚本的次数
    system call overhead,系统调用消耗,使用getpid,进入离开内核的执行时间
    graphic,2D3D简单测试


  2,内存
  物理机与虚拟机内存性能差异主要在占用与释放,这是因为虚拟机的内存与物理内存之间被映射了2次;
  当前测试内存主要是测试内存是否有错误。
  主要2款测试工具:memtester、memtest86+
  (1)memtester
    特点:从系统中测试内存
    测试项目:随机值、异或、加减乘除等运算,结合内存大小和次数给出结果
  (2)memtest86+
    特点:引导一个小型系统来检测内存

  3,网络
  网络io是虚拟化的难点和热点,虚拟机也经常遇到网络性能瓶颈与网络稳定性的问题
  常见测试用例:
    tcp吞吐
    tcp连接数
    tcp单连接多交易
    tcp发包率pps
    udp吞吐
    udp单连接多交易
    udp发包率pps
    业务模型网络模拟
  推荐测试工具:netperf
  (1)netperf介绍

      针对tcp或udp传输的测试工具,可以进行不同模式网络性能测试:
    批量数据传输模式,bulk data transfer
    请求应答模式,request response
  (2)网络测试的关键指标
    BPS,网络吞吐量,1分钟经过网卡的数据流量
    PPS,发包率,1分钟经过网卡的数据包的数量
  (3)测试的常见流量模式
    TCP三种:
    单TCP连接,传输大数据量
    单TCP连接,大连接次数
    多TCP连接,每个连接对应RR模式
    UDP两种:
    单UDP,单向批量传输
    RR模式
  (4)测试参数-t的作用

    指定5种测试类型:

    TCP_STREAM,tcp批量传输
    UDP_STREAM,udp批量传输
    TCP_RR,多次交易过程
    UDP_RR,多次交易过程
    TCP_CRR,多连接场景

 

  4,硬盘
  硬盘测试主要测试吞吐量和iops,但是需要特别注意的是cache对磁盘io影响。
  (1)常见的cache

    在不同系统层面有4种:

    guest os的buffer cache
    host os 的buffer cache
    raid卡的cache、模式
    物理disk的cache、模式
  所以测试结果需要注明软硬件环境、cache模式才有意义
  (2)测试环境推荐
    禁用物理disk的cache
    禁用raid卡的weiteback cache
    虚拟机硬盘模式设为writethough或direct io,以保证数据一致性
  (3)测试用例推荐
    1MB顺序读写——测试大数据块性能
    4KB随机读写——测试并发性能
    模拟业务场景,如
4KB顺序写 30%,8KB随机写 50%,20%随机写

  (4)测试工具:fio、iometer、iozone、dd
  fio
    用于基准和压力测试的io工具
    支持裸设备、文件系统的测试
    官方howto文档介绍的很详细,http://bluestop.org/files/fio/HOWTO.txt
  iometer
    主要windows系统下
  iozone
    针对文件系统的性能测试工具
    图形展示测试结果,软件是收费的
  dd
    系统自带的命令,无需安装
    只能测试顺序io性能
    采用oflag或iflag参数指定direct sync dsync模式

 

  最后,照例放上总结图:

 

posted on 2017-01-11 13:34  公子Z  阅读(721)  评论(0编辑  收藏  举报

导航