(云)服务器硬件性能测试

准备工作

  • 明确测试项目和指标

    本例:

    CPU:每秒运算数

    内存:内存带宽、内存延迟

    存储:IOPS、带宽、时延

    网络:上传、下载带宽

  • 对比基准测试数据以对结果进行评估

    数据来源可以为云商提供的产品介绍或者其他的测评报告,测试时维持配置一致即可。
    本测试机型为8核心32GB机器,对比以下基准数据

开始测试

  • CPU

    1、测试工具sysbench

    	# threads与cpu核心数量一致,避免上下文切换,建议测试3次,取平均结果
    	rpm -ql sysbench || yum -y install sysbench
    	sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run
    	sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run
    	sysbench cpu --cpu-max-prime=20000 --threads=8 --time=50 run
    

    2、关键结果
    在这里插入图片描述

    3、基准数据对比评价:略

  • 内存带宽:

    1、测试工具stream

    # stream需要手动编译后执行,编译的参数会影响到测试结果
    rpm -ql gcc || yum -y install gcc
    [ -e stream.c ] || wget http://www.cs.virginia.edu/stream/FTP/Code/stream.c 
    gcc  -march=native -O3 -mcmodel=medium -fopenmp -DSTREAM_ARRAY_SIZE=100000000 -DNTIMES=30 -DOFFSET=4096 stream.c -o stream.o 
    ./stream.o
    

    2、关键结果
    在这里插入图片描述

    3、基准数据对比评价:略

    4、额外说明:stream.c的编译参数对于测试结果有较大影响,其中参数的作用可以参见这篇文章

  • 内存延迟

    1、测试工具Intel MLC

    [ -e mlc_v3.9.tgz ] || wget https://software.intel.com/content/dam/develop/external/us/en/protected/mlc_v3.9.tgz
    [ -d Linux ] || tar xzf mlc_v3.9.tgz
    num=$(cat /proc/sys/vm/nr_hugepages 2> /dev/null)   
    echo 4000 > /proc/sys/vm/nr_hugepages
    cd Linux && ./mlc --latency_matrix
    echo $num > /proc/sys/vm/nr_hugepages
    

    2、关键结果
    在这里插入图片描述

    3、基准数据对比评价:略

  • 存储

    1、测试工具fio

    #将命令中的target替换成目标磁盘(块设备而非分区),此此操作会破坏磁盘数据,如果不像破坏磁盘数据,请将测试目标替换为磁盘挂载的目录中的一个文件
    
    #随机读IOPS
    fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randread -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-iops --size=1G -filename=${target} --runtime=30s   
    
    #随机写IOPS
    fio -bs=4k -ioengine=libaio -iodepth=32 -direct=1 -rw=randwrite -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-iops --size=10G -filename=${target} --runtime=30s
     
    #随机读时延
    fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randread -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randread-lat --size=10G  --runtime=30s  -filename=${target}
     
     
    #随机写时延
    fio -bs=4k -ioengine=libaio -iodepth=1 -direct=1 -rw=randwrite -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-randwrite-lat --size=10G --runtime=30s -filename=${target}
     
    #随机读带宽
    fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=read -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-read-throughput --size=10G --runtime=30s -filename=${target}
     
    #随机写带宽
    fio -bs=128k -ioengine=libaio -iodepth=32 -direct=1 -rw=write -time_based -runtime=600  -refill_buffers -norandommap -randrepeat=0 -group_reporting -name=fio-write-throughput --size=10G --runtime=30s -filename=${target}
    

    2、关键结果在这里插入图片描述

    3、基准数据对比评价:略

    4、额外说明:不能进使用一条命令的结果来获取各个指标项目的值,因为参数的不同会导致结果的不同而影响到获取到的指标的值,使用具体的命令获取具体项目的值已得到更真实的结果

  • 网络测试

    1、测试工具speedtest

    rpm -ql speedtest || (yum install wget && wget https://bintray.com/ookla/rhel/rpm -O bintray-ookla-rhel.repo && mv bintray-ookla-rhel.repo /etc/yum.repos.d/ && yum -y install speedtest)
    speedtest
    

    2、关键结果:见终端输出

    3、基准数据对比评价:略

    4、额外说明:speedtest仅测试最近的一个测速点,如果想更换测速点,使用speedtest -L 列出测速点,使用speedtest -s <上一条命令获取的测速节点的编号>测试指定测速点

整理为测试脚本以复用

脚本链接

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用JMeter进行服务器性能测试和压力测试,可以按照以下步骤进行操作: 1. 安装JMeter:首先,确保已经安装了Java环境,然后下载并安装最新版本的JMeter。 2. 创建测试计划:打开JMeter,在测试计划上右键单击,选择 "Add" -> "Threads (Users)" -> "Thread Group",设置线程组的参数,如线程数、循环次数等。 3. 添加Sampler:在线程组下右键单击,选择 "Add" -> "Sampler" -> "HTTP Request",配置HTTP请求的相关参数,如URL、请求方法、请求头、参数等。 4. 添加监听器:在HTTP请求下右键单击,选择 "Add" -> "Listener",可以选择合适的监听器来收集和分析测试结果,如 "View Results Tree"、"Summary Report" 等。 5. 配置线程组参数:在线程组上右键单击,选择 "Add" -> "Config Element" -> "HTTP Cookie Manager",配置Cookie管理器,以便保持用户会话状态。 6. 设置负载和并发:根据需求设置线程组的负载和并发数,可以使用 JMeter 提供的各种配置元件来模拟不同的负载情况。 7. 运行测试:点击工具栏上的 "Start" 按钮运行测试,JMeter将发送HTTP请求并记录响应时间等性能指标。 8. 分析结果:使用监听器查看测试结果,可以生成报告或者导出数据以便进一步分析和评估服务器的性能。 请注意,在进行性能测试和压力测试时,需要根据实际情况设置适当的负载和并发数,以避免对服务器造成过大的负担。此外,还需要关注服务器硬件配置、网络带宽等因素,以获得更准确的测试结果。 以上是使用JMeter进行服务器性能测试和压力测试的基本步骤。希望对您有帮助!如有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值