对Linux进行压力测试

  1. CPU测试

  2. 在Linux中,我们用fio这款工具来对CPU进行压力测试。

  3. 安装

  4. Centos

  5. yum install fio
    
  6. debian

  7. apt-get install fio
    

image-20230904112237954

使用帮助:

命令 说明
direct=1 测试过程绕过机器自带的buffer,使测试结果更真实
rw=randwread 测试随机读的I/O
rw=randwrite 测试随机写的I/O
rw=randrw 测试随机混合写和读的I/O
rw=read 测试顺序读的I/O
rw=write 测试顺序写的I/O
rw=rw 测试顺序混合写和读的I/O
bs=4k 单次io的块文件大小为4k
bsrange=512-2048 同上,提定数据块的大小范围
size=5g 本次的测试文件大小为5g,以每次4k的io进行测试
numjobs=30 本次的测试线程为30
runtime=1000 测试时间为1000秒,如果不写则一直将5g文件分4k每次写完为止
ngine=psync io引擎使用pync方式,如果要使用libaio引擎,需要yum install l
rwmixwrite=30 在混合读写的模式下,写占30%
group_reporting 关于显示结果的,汇总每个进程的信息

示例

向磁盘写一个 1G 文件,10 线程,随机读 2分钟

fio -filename=/tmp/test_randread -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=1G -numjobs=10 -runtime=120 -group_reporting -name=mytest

image-20230904112320560

CPU测试

我们可以用stress这款工具来完成对目标CPU性能的测试。

安装

yum install stress

常用命令

命令 说明
-c 产生 N 个进程
-m 产生 N 个进程,每个进程不断分配和释放内存
-d 产生 N 个不断执行 write 和 unlink 函数的进程
-t 在 N 秒后结束程序
-q 程序在运行的过程中不输出信息
-n 输出程序会做什么而并不实际执行相关的操作
-v –verbose 显示详细的信息

示例

压满6个cpu,执行100秒(--timeout可以直接用--t)

stress --cpu 6 --timeout 100

image-20230904112347995

使用另一个终端工具登录被测服务器,使用top命令查看系统状况

image-20230904112410892

磁盘及I/O测试

新增6个I/O进程,1个写进程,每次写1000M文件块,测试100秒

stress --io 6 -d 1 --hdd-bytes 1000M -t 100

image-20230904112435003

posted @ 2023-09-04 11:25  寻梦99  阅读(326)  评论(0)    收藏  举报