加油奋斗吧 2020-01-17
一、linux cpu、内存、IO、网络的测试工具
cpu测试工具
1、Super Pi for linux
Super PI是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被用户用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间。
./super_pi 20
20为位数。表示要算2的多少次方位,如通常要算小数点后1M位。
2、sysbench
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。
内存测试工具
1、memtester(只可测试可用性,不好测试性能)
可以进行内存的压力测试,Memtester主要是捕获内存错误和一直处于很高或者很低的坏位, 其测试的主要项目有随机值,异或比较,减法,乘法,除法,与或运算等等. 通过给定测试内存的大小和次数, 可以对系统现有的内存进行上面项目的测试。
2、sysbench
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。
存储IO测试工具
1、dd
time dd if=/dev/zero of=test bs=1M count=4096
用top和iostat查看wa%及写硬盘速度
2、fio
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证,支持13种不同的I/O引擎,
包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。
混合随机读写:
fio --filename=/dev/sda3 --direct=1 --iodepth 1 --thread --rw=randrw --rwmixread=70 --ioengine=psync --bs=4k --size=2G --numjobs=10 --runtime=100 --group_reporting --name=mytest --ioscheduler=noop
3、iozone
IOZONE主要用来测试操作系统文件系统性能的测试工具,该工具所测试的范围主要有,write , Re-write, Read, Re-Read, Random Read, Random Write, Random Mix, Backwards Read, Record Rewrite, Strided Read, Fwrite, Frewrite, Fread, Freread, Mmap, Async I/O
4、sysbench
sysbench是一个开源的、模块化的、跨平台的多线程性能测试工具,可以用来进行CPU、内存、磁盘I/O、线程、数据库的性能测试。
网络测试工具
1、iperf
Iperf 是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。
2、netperf
Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输。Netperf根据应用的不同,可以进行不同模式的网络性能测试,即批量数据传输(bulk data transfer)模式和请求/应答(request/reponse)模式。Netperf测试结果所反映的是一个系统能够以多快的速度向另外一个系统发送数据,以及另外一个系统能够以多块的速度接收数据。
综合测试工具
1、unixbench
unixbench是一套unix系统基准测试套件。unixbench的设计目标是为类unix系统提供一套基本的指标,所以有许多项目测试系统各方面的性能。各项的测试有得分,然后有一个综合的得分,这样可以很方便的通过分数去比较。
unixbench一个基于系统的基准测试工具,不单纯是CPU 内存 或者磁盘测试工具。测试结果不仅仅取决于硬件,也取决于系统、开发库、甚至是编译器。
2、Stress
Stress是一个Posix系统下生成Cpu/Menory/IO/Disk负载的工具。是Unix类系统下的工作量和压力测试工具。它将对用户指定的CPU数量的I/O,内存和硬盘的负载并报告它检测到任何错误。它用于自动压力测试
centos73安装工具
配置epel源
sudo yum install epel-release
安装 fio iperf sysbench stress
yum install -y fio iperf sysbench stress
安装iozone
# wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
# rpm -Uvh rpmforge-release*rpm
# yum install iozone -y
安装netperf
# wget http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm
# rpm -Uvh lux-release-7-1.noarch.rpm
# yum install netperf -y
安装unixbench
# wget http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
# rpm -Uvh nux-dextop-release-0-5.el7.nux.noarch.rpm
# yum install unixbench -y
源码安装
$ wget --no-check-certificate https://github.com/teddysun/across/raw/master/unixbench.sh
$ chmod +x unixbench.sh
$ ./unixbench.sh
————————————————
版权声明:本文为CSDN博主「wenwenxiong」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wenwenxiong/article/details/77197997
一、安装stress服务
1、下载stress_1.0.1.orig.tar.gz安装包
2、解压tar xvf stress_1.0.1.orig.tar.gz
3、进入解压目录执行./configure
4、make
5、make check
6、make install
7、make clean
二、安装sysstat服务
1、下载sysstat-11.5.6.tar.gz安装包
2、解压tar xvf sysstat-11.5.6.tar.gz
3、进入解压目录执行./configure
4、make & make install
三、测试CPU密集型进程
1、在第一个终端输入以下命令:stress --cpu 1 --timeout 600
2、在第二个终端输入watch -d uptime实时查看平均负载的变化情况:
3、在第三个终端运行mpstat查看CPU使用率的变化情况:
在第二个终端可以看到,1分钟的平均负载会慢慢增加到1.00,而从第三个终端可以看到正好有一个CPU的使用率为100%,但是它的iowait只有0。说明平均负载的升高正是由于CPU使用率为100%。
4、使用pidstat查看是哪个进程导致CPU使用率为100%
可以看到,PID为3938的stress进程导致CPU使用率为100%。
四、模拟大量进程
1、在第一个终端输入以下命令:stress -c 16 --timeout 600
2、在第二个终端输入watch -d uptime实时查看平均负载的变化情况:
由于系统只有4个CPU,明显比16个进程要少,因而系统的CPU处于严重过载的状态,平均负载高达16.05
3、接着再运行pidstat看下进程的情况:
可以看出,16个进程在争抢4个CPU,每个进程等待CPU的时间(上面的%wait列)高达70%多。超出CPU计算能力,最终导致CPU过载。