一、对CPU进行简单测试:

1、通过bc命令计算特别函数

例:计算圆周率

echo "scale=5000; 4*a(1)" | bc -l -q

2.我工作中一般用一个死循环进行cpu占用,这样可以比较持续,简单粗暴的进行~~

while [ 1 ]
  do
    echo 1 >> /dev/null  
  done

或者 while [ 1 ];do : ;done

如果多核那么多执行几次~~

二、对内存进行简单测试:

方式一:

工具:memtester
官方:http://pyropus.ca/software/memtester/
用法:Usage: ./memtester [-p physaddrbase [-d device]] <mem>[B|K|M|G] [loops]

方式二:

做一些应用的启动,文件的读写测试 来模拟

三、对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 等等。

说明: 
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。 
direct=1 测试过程绕过机器自带的buffer。使测试结果更真实。 
rw=randwrite 测试随机写的I/O 
rw=randrw 测试随机写和读的I/O 
bs=16k 单次io的块文件大小为16k 
bsrange=512-2048 同上,提定数据块的大小范围 
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试。 
numjobs=30 本次的测试线程为30. 
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止。 
ioengine=psync io引擎使用pync方式 
rwmixwrite=30 在混合读写的模式下,写占30% 
group_reporting 关于显示结果的,汇总每个进程的信息。 
此外 
lockmem=1g 只使用1g内存进行测试。 
zero_buffers 用0初始化系统buffer。 
nrfiles=8 每个进程生成文件的数量。

随机读: 
fio --filename=/dev/sda3 --direct=1 --iodepth 1 --thread --rw=randread --ioengine=psync --bs=4k --size=2G --numjobs=10 --runtime=100 --group_reporting --name=mytest 
顺序读: 
fio --filename=/dev/sda3 --direct=1 --iodepth 1 --thread --rw=read --ioengine=psync --bs=4k --size=2G --numjobs=10 --runtime=100 --group_reporting --name=mytest 
随机写: 
fio --filename=/dev/sda3 --direct=1 --iodepth 1 --thread --rw=randwrite --ioengine=psync --bs=4k --size=2G --numjobs=10 --runtime=100 --group_reporting --name=mytest 
顺序写: 
fio --filename=/dev/sda3 --direct=1 --iodepth 1 --thread --rw=write --ioengine=psync --bs=4k --size=2G --numjobs=10 --runtime=100 --group_reporting --name=mytest 
混合随机读写: 
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

使用iozone可以在多线程、多cpu,并指定cpu cache空间大小以及同步或异步I/O读写模式的情况下进行测试文件操作性能;

(0=write/rewrite, 1=read/re-read, 2=random-read/write
3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite, 7=fread/Re-fread, 
8=random mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread, 11=pwritev/Re-pwritev, 12=preadv/Re-preadv).

iozone还可以多机并发测试,有兴趣的可以了解一下

参数:

针对文件系统的测试可以按一下几项执行操作:

例:iozone -a -n 512m -g 4g -i 0 -i 1 -i 5 -f /mnt/iozone  -c -C -+k -+n  -e -Rb ./iozone.xls

进行全面测试.最小测试文件为512M直到测试到4G.测试read,write,和Strided Read.测试的地方在mnt下。生成Excel的文件

要验证正确性的话,可以加上 -+d

使用的脚本:

#!/bin/bash
io102cmd=/eric/iozone
HOSTNAME=`hostname`
DATE=`date +%Y-%m-%d-%H`
IP=`cat /etc/sysconfig/network-scripts/ifcfg-enp8s0 |grep "IPADDR" |awk -F '=' '{print $2}'`
RECSIZE=1m
THREADS=24              #max maximum value 254  disks*loops=THREADS(36*7=252)
FILESIZE=12g    #test data block mul disks ej:850g*36=30600g
LOG=/datapool/log/${DATE}_${HOSTNAME}_io102zone_${IP}_${RECSIZE}_${FILESIZE}_${THREADS}
i=0                     #loop counts form 0 - 6

while [ $i -lt 2 ]
do
FILE1=" /datapool/io102/a${i} /datapool/io102/b${i} /datapool/io102/c${i} /datapool/io102/d${i} /datapool/io102/e${i} /datapool/io102/f${i} /datapool/io102/g${i} /datapool/io102/h${i} /datapool/io102/i${i} /datapool/io102/j${i} /datapool/io102/k${i} /datapool/io102/l${i} ${FILE1} "
i=` expr $i + 1 `
done

while [ 1 ]
do
echo $FILE1

$io102cmd  -r ${RECSIZE} -s ${FILESIZE} -t ${THREADS} -F ${FILE1} -i 0 -i 1 -+n -w -+k -R -b report.xls -c -C -e >> $LOG
done

四、网络测试工具iperf:

Iperf  是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。

Iperf使用方法与参数说明

参数说明
-s 以server模式启动,eg:iperf -s
-c host以client模式启动,host是server端地址,eg:iperf -c 222.35.11.23
通用参数
-f [k|m|K|M] 分别表示以Kbits, Mbits, KBytes, MBytes显示报告,默认以Mbits为单位,eg:iperf -c 222.35.11.23 -f K
-i sec 以秒为单位显示报告间隔,eg:iperf -c 222.35.11.23 -i 2
-l 缓冲区大小,默认是8KB,eg:iperf -c 222.35.11.23 -l 16
-m 显示tcp最大mtu值
-o 将报告和错误信息输出到文件eg:iperf -c 222.35.11.23 -o c:\iperflog.txt
-p 指定服务器端使用的端口或客户端所连接的端口eg:iperf -s -p 9999;iperf -c 222.35.11.23 -p 9999
-u 使用udp协议
-w 指定TCP窗口大小,默认是8KB
-B 绑定一个主机地址或接口(当主机有多个地址或接口时使用该参数)
-C 兼容旧版本(当server端和client端版本不一样时使用)
-M 设定TCP数据包的最大mtu值
-N 设定TCP不延时
-V 传输ipv6数据包

server专用参数
-D 以服务方式运行ipserf,eg:iperf -s -D
-R 停止iperf服务,针对-D,eg:iperf -s -R

client端专用参数
-d 同时进行双向传输测试
-n 指定传输的字节数,eg:iperf -c 1.1.1.1 -n 100000
-r 单独进行双向传输测试
-t 测试时间,默认10秒,eg:iperf -c 1.1.1.1 -t 5
-F 指定需要传输的文件
-T 指定ttl值

2.还有一个netperf 类似

netperf

1、下载地址:
wget  ftp://ftp.netperf.org/netperf/netperf-2.5.0.tar.gz
2、参考资料:
http://baike.baidu.com/view/3506574.htm?fr=ala0_1_
3、功能介绍
man 说明
Netperf  is  a benchmark that can be used to measure various aspects of networking performance.  Currently, its focus is on bulk data  transfer and  request/response  performance  using  either  TCP  or UDP, and the  Berkeley Sockets interface. In  addition,  tests  for  DLPI,  and  Unix Domain Sockets, tests for IPv6 may be conditionally compiled-in.
3.1、对TCP(缺省情况下进行TCP批量传输,即-t TCP_STREAM),Netperf可以模拟三种不同的TCP流量模式:

  1) 单个TCP连接,批量(bulk)传输大量数据,测试过程中,netperf向netserver发送批量的TCP数据分组,以确定数据传输过程中的吞吐量(附录6)
2) 单个TCP连接,client请求/server应答的交易(transaction)方式(附录8)
3) 多个TCP连接,每个连接中一对请求/应答的交易方式(附录9

3.2、对UDP(指定-t UDP_STREAM),Netperf可以模拟两种UDP的流量模式:
  1) 从client到server的单向批量传输 (附录7
2) 请求/应答的交易方式(附录10)

参考地址:http://qa.blog.163.com/blog/static/1901470022011102543322445/

其他服务器协议性能或者压力

可以使用开源的jmeter 下次再做介绍

linux下的CPU、内存、IO、网络的压力测试工具与方法介绍相关推荐

  1. linux 内存强度测试软件,linux下的CPU、内存、IO、网络的压力测试工具与方法介绍...

    使用工具stress Centos # yum -y install stress Ubantu # apt-get install stress # stress --help `stress' i ...

  2. linux下的CPU、内存、IO、网络的压力测试工具与方法

    一.CPU压力测试工具Super Pi forLinux Super PI是利用CPU的浮点运算能力来计算出π(圆周率),所以目前普遍被超频玩家用做测试系统稳定性和测试CPU计算完后特定位数圆周率所需 ...

  3. linux内存跑分,RaspberryPi 4B 4G版本跑分测|CPU|内存|IO|网络|性能全面测试

    前言 拿到手最新的RaspberryPi 4B 4G版本,新版本的4修复了之前的硬件bug. 直接官方安装软件刷上了最新版本的Linux raspberrypi 4.19.97,MicroSD卡选用的 ...

  4. Linux下查看某个进程打开的文件数-losf工具常用参数介绍

    Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在linux操作系统中,一切皆文件.通过文件不仅仅可以访问常规数据,还 ...

  5. Thinkpad在Linux下指点杆和无线网络的配置和故障解决方法

    型号是Thinkpad R60i,系统为Fedora Linux 11,内核版本号:2.6.30.10 一.trackpoint 指点杆的调整 1.灵敏度的调整: 前文:指点杆(小红帽)是我最喜欢小黑 ...

  6. Linux下查看CPU/内存/硬盘的shell命令

    1.cpu查看 1)cpu个数:#cat /proc/cpuinfo | grep "physical id" | uniq | wc -l 2)cpu核数:#cat /proc/ ...

  7. 虚拟化技术简介--CPU/内存/IO/网络虚拟化介绍

    1. 概述 本文讨论的虚拟化,是指将一台计算机虚拟为多台逻辑计算机.在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响. 2. ...

  8. linux查看内存的生产商,linux下查看CPU.内存型号.pci 转自《Ivan-blog》

    cat /proc/cpuinfo | grep 'physical id' physical id : 0 physical id : 0 physical id : 0 physical id : ...

  9. linux下给CPU增加指定百分比的压力

    场景和目的 一台计算机会因为当前CPU的占率不同情况表现出不同的稳定性和实时性以及其他性能情况.需要编写一个程序将一个CPU或者多个CPU占用到指定值的占用率,比如50%.很多工具都是直接一颗CPU占 ...

最新文章

  1. 【Java】leetCode 21 合并两个有序链表
  2. 《嵌入式Linux与物联网软件开发——C语言内核深度解析》一第1章 C语言与内存1.1 引言...
  3. 机器学习研究今年谁最火?几何深度学习成最大赢家,Reddit为提名选手吵成一团...
  4. idea启动webservice_idea使用springboot的webservice基于cxf
  5. spring整合CXF
  6. enet分割_论文阅读 | CVPR 2016 | 语义分割论文: ENet
  7. OFFICE EXCEL表格中让A1 中的数字为变量时,如何引用
  8. python是什么语言-Python是什么?为什么现在越来越多的人选择学习Python语言
  9. Go编程笔记(28)
  10. centos eclipse php,centos打不开eclipse怎么办?
  11. SSH/SSH客户端介绍、利用SSH访问linux、SSH跟telnet区别
  12. 生信必备技巧之R语言基础教程03——逻辑数据用途及字符串处理
  13. TFT液晶屏-真彩色高亮度高分辨率的液晶显示屏
  14. 怎么样设计好看的logo?教你6步学会logo设计
  15. 风陵渡口初相遇,一见杨过误终身
  16. 5 个改善代码可读性的方法
  17. KEIL、uVision、RealView、MDK、KEIL C51区别
  18. 采药问题 c语言程序,采药 题解
  19. XML Publisher介绍
  20. 奶爸日记24 白砂糖

热门文章

  1. 安装setuptools
  2. PS手绘滤镜插件:Alien Skin Snap Art 4 for Mac对系统的要求
  3. 机房管理系统逻辑关系
  4. 决策树-离散连续值如何构造决策树
  5. P1786 帮贡排序c++良心题解
  6. SEO优化技巧 如何做网站运营
  7. “65页PPT”事件男主,被拘留后续来了!
  8. 针对东北老公马俊打上海老婆黄佳的看法
  9. nginx实现对websocket加密协议wss协议的反向代理以及websocket整合springboot入门(踩坑)
  10. Python零基础自学3(黑马)