zoukankan      html  css  js  c++  java
  • 云平台测试——(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模式

      最后,照例放上总结图:

  • 相关阅读:
    【二分图匹配/匈牙利算法】飞行员配对方案问题
    【模板/学习】匈牙利算法
    【tarjan缩点+分层图】草鉴定Grass Cownoisseur
    【微笑】
    【质因数分解】SAC E#1 一道中档题 Factorial
    【dfs+dp】砝码称重
    【背包dp】自然数拆分Lunatic版
    【单调队列】最大子序和
    【单调队列】滑动窗口
    bzoj 2834: 回家的路
  • 原文地址:https://www.cnblogs.com/zhaogang99/p/6273290.html
Copyright © 2011-2022 走看看