我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Linux 性能基准测试工具及测试方法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Linux 性能基准测试工具及测试方法

linux_benchmarking_tools

整理测试指标如下图

图片

测试环境说明:CentOS7, 4c8g

CPU

Super_Pi 是一种用于计算圆周率π的程序,通常用于测试计算机性能和稳定性。它的主要用途是测量系统的单线程性能,因为它是一个单线程应用程序。

# 安装 bc
yum -y install bc
# 测试
time echo "scale=5000; 4*a(1)" | bc -l -q &>1
# 结果分析,看 real 即可,时间越短,性能越好

图片

sysbench 素数计算

# 安装 sysbench
yum -y install sysbench
# 测试方法: 启动4个线程计算10000事件所花的时间
sysbench cpu --threads=4 --events=10000 --time=0  run
# 结果分析,看 total time 即可,时间越短,性能越好

图片

内存

内存带宽(stream)

Stream测试是内存测试中业界公认的内存带宽性能测试基准工具

# 编译安装 STREAM
yum -y install gcc gcc-gfortran
git clone https://github.com/jeffhammond/STREAM.git
cd STREAM/
make
# 指定线程数
export OMP_NUM_THREADS=1
./stream_c.exe
# 结果分析,看 Copy、Scale、Add、Triad,数值越大,性能越好

图片

磁盘 IO

⚠️  测试时请准备裸的数据盘,测试完成后请重新格式化磁盘

测试方法和结果分析和文件 IO 测试相同,--filename  改为具体的数据盘即可,比如/dev/sda ,这里不再赘述

文件 IO

磁盘读、写iops

iops:磁盘的每秒读写次数,这个是随机读写考察的重点

# 安装
yum -y install fio
# 测试随机读 IOPS
fio --ioengine=libaio --bs=4k --direct=1 --thread --time_based --rw=randread --filename=/home/randread.txt --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=randread-dep1 --size=1g
# 测试随机写 IOPS
fio --ioengine=libaio --bs=4k --direct=1 --thread --time_based --rw=randwrite --filename=/home/randwrite.txt --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=randread-dep1 --size=1g
# 结果分析,看 IOPS 即可,值越大,性能越好

图片

图片

磁盘读、写带宽

bw:磁盘的吞吐量,这个是顺序读写考察的重点

# 测试顺序读
fio --ioengine=libaio --bs=4k --direct=1 --thread --time_based --rw=read --filename=/home/read.txt --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=randread-dep1 --size=1g
# 测试顺序写
fio --ioengine=libaio --bs=4k --direct=1 --thread --time_based --rw=write --filename=/home/write.txt --runtime=60 --numjobs=1 --iodepth=1 --group_reporting --name=randread-dep1 --size=1g
# 结果分析,看 BW 即可,值越大,性能越好

图片

图片

⚠️  因地制宜,灵活选取。在基准测试时,一定要注意根据应用程序 I/O 的特点,来具体评估指标。

比如 etcd  磁盘性能衡量指标为:WAL 文件系统调用 fsync 的延迟分布,当 99% 样本的同步时间小于 10 毫秒就可以认为存储性能能够满足 etcd 的性能要求。

mkdir etcd-bench fio --rw=write --ioengine=sync --fdatasync=1 --directory=etcd-bench --size=22m --bs=2300 --name=etcd-bench

图片

网络

传输速率(pps)

# server & client 编译安装 netserver
wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz
yum -y install gcc cc 
tar zxvf netperf-2.5.0.tar.gz
cd netperf-netperf-2.5.0
./configure && make && make install

# server 端启动 netserver
netserver
# 监控数据
sar -n DEV 5

# client 端测试
netperf -t UDP_STREAM -H  -l 100 -- -m 64 -R 1 &
# 监控数据
sar -n DEV 5
# 结果分析,看 rxpck/s,txpck/s 值即可,值越大,性能越好

图片

网络带宽

# server 端启动 netserver
netserver
# 监控数据
sar -n DEV 5
 
# client 端测试
netperf -t TCP_STREAM -H  -l 100 -- -m 1500 -R 1 &
# 监控数据
sar -n DEV 5
# 结果分析,看 rxkB/s,txkB/s 值即可,值越大,性能越好

图片

Nginx

# 安装 ab 工具
yum -y install httpd-tools

# 编译安装 wrk
git clone https://github.com/wg/wrk.git
make
cp wrk /usr/local/bin/
 
# 测试,-c表示并发连接数1000,-t表示线程数为2,-d 表示测试时间
wrk -t12 -c400 -d30s 
# 结果分析,Requests/sec 为 QPS

图片

自动化压测脚本

压测需要大量采样,并实时观察

git clone https://github.com/clay-wangzhi/bench.git
bash bench.sh

图片

更多测试方法,详见 https://github.com/clay-wangzhi/bench

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Linux 性能基准测试工具及测试方法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Linux 性能基准测试工具及测试方法

Super_Pi 是一种用于计算圆周率π的程序,通常用于测试计算机性能和稳定性。它的主要用途是测量系统的单线程性能,因为它是一个单线程应用程序。

Golang 函数测试中的性能基准测试

go 中的性能基准测试衡量函数效率,通过在以 benchmark 开头的函数中编写基准测试代码实现。testing.b 类型提供 resettimer()、stoptimer() 和 n 属性控制基准测试行为。例如,计算斐波那契数的函数基准
Golang 函数测试中的性能基准测试
2024-04-12

Android性能测试工具:Emmagee

Emmagee是监控指定被测应用在使用过程中占用机器的CPU、内存、流量资源的性能测试小工具。支持SDK:Android2.2以及以上版本Emmagee功能介绍1、检测当前时间被测应用占用的CPU使用率以及总体CPU使用量2、检测当前时间被
2022-06-06

MySQL性能压力基准测试工具sysbench的使用简介

1、sysbench介绍这里介绍一款MySQL数据库的压力测试软件sysbench,用它来进行基准测试。 sysbench 是一个开源的、模块化的、跨平台的多线程性能测试工具, 可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。
2022-05-28

Linux测试工具route的配置及实现方法

本篇内容主要讲解“Linux测试工具route的配置及实现方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux测试工具route的配置及实现方法”吧!本文是介绍管理Linux系统网络性能
2023-06-16

Linux iperf 网络传输性能测试工具

Iperf 是一个网络性能测试工具。Iperf可以测试最大TCP和UDP带宽性能。Iperf具有多种参数和UDP特性,可以根据需要调整。Iperf可以报告带宽,延迟抖动和数据包丢失。进行测试时分为服务端和客户端。安装方法
2023-06-05

Golang 性能基准测试(Benchmark)详解

Validator包中的 Scanner.go 文件中的关键函数 Valid 用于校验给定字符串是否 Json 格式,对应的性能测试文件为 Scanner_test.go,里面的测试函数为 BenchmarkValid。
ValidatorGolang2024-11-30

Go函数性能优化:基准测试与性能分析方法

了解 go 函数性能优化至关重要,可以通过以下方法实现:基准测试:使用 go 的 testing 包测量执行时间和资源消耗,例如基准测试字符串连接策略。性能分析:使用 runtime/pprof 包生成函数调用图,通过 go tool pp
Go函数性能优化:基准测试与性能分析方法
2024-05-03

OpenJDK JMH——Java程序的基准测试工具

JMH提供了一组注解和API,使得编写微基准测试变得简单和方便。使用JMH,您可以定义和运行各种类型的基准测试,包括方法级别的基准测试、类级别的基准测试和多线程基准测试。JMH还提供了丰富的选项和配置,以控制基准测试的执行方式,如迭代次数、
JMH基准测试2024-11-30

详解安卓应用性能测试方法以及Android SDK中辅助测试的工具使用

Android前端APP的性能测试一般针对以下几个方面:应用启动时间;CPU的占用;内存的占用;流量的耗用;电量的耗用;流畅度等。

linux服务器性能测试工具有哪些

1. Sysbench:一个多线程的基准测试工具,可以测试CPU、内存、IO等性能指标。2. IOzone:一个广泛使用的文件系统和磁盘性能测试工具,可以测试文件读写、随机和顺序I/O、缓存和网络等方面的性能。3. Fio:一个灵活的I/O
2023-06-08

Linux平台Web服务性能测试工具http_load

http_load的主页(实在是有点简陋):http://www.acme.com/software/http_load/ 下载回来一个压缩包,解压出来之后连configure都不用,直接make即可生成可执行程序 http_load(视系
2022-06-03

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录