预装MySQL前硬件烤机压测

1.进行CPU、MEM烤机压

复制代码
 1 #a. 安装
 2 yum install -y epel-release
 3 yum install -y stress
 4 #参数解析:
 5 -c, --cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根
 6 -i, --io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
 7 -m, --vm N 产生 N 个进程,每个进程不断分配和释放内存
 8   –vm-bytes B 指定分配内存的大小
 9   –vm-stride B 不断的给部分内存赋值,让 COW(Copy On Write)发生
10   –vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程
11   –vm-keep 一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
12 -d, --hadd N 产生 N 个不断执行 writeunlink 函数的进程(创建文件,写入内容,删除文件)
13 –hadd-bytes B 指定文件大小
14 -t, --timeout N 在 N 秒后结束程序
15 –backoff N 等待N微妙后开始运行
16 -q, --quiet 程序在运行的过程中不输出信息
17 -n, --dry-run 输出程序会做什么而并不实际执行相关的操作
18 –version 显示版本号
19 -v, --verbose 显示详细的信息
20 
21 #b. 烤机CPU
22 [root@slave1 ~]# stress -c 4    # C代表核心数量 (Cores),这个根据实际情况来压测,同时利用top查看cpu
23 #c. 烤机 MEM
24 stress -m 3 --vm-bytes 300M  #内存压测不能写实际内存,可能会压奔溃系统,建议留些例实际1G 可以用800M样子来压测
25 #d. 烤机多参数
26 stress -c 4 -m 2 -d 1
复制代码

2.IO压测

1 FIO是测试IOPS的非常好的工具,用来对磁盘进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写,混合读写两大类。
2 FIO是一个可以产生很多线程或进程并执行用户指定的特定类型I/O操作的工具,FIO的典型用途是编写和模拟的I/O负载匹配的作业文件。
3 FIO是一个多线程io生成工具,可以生成多种IO模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的IO测试)。
4 FIO压测可以帮助管理员,提前预知磁盘瓶颈,及时作出扩容建议。也可以作为有效烤机

  FIO应用(IO压测工具)

复制代码
 1 a. 环境准备  #如已创建则忽略
 2 mkdir -p /data
 3 mkfs.xfs /dev/sdb
 4 mount /dev/sdb /data
 5 dd if=/dev/zero of=/data/test bs=16k count=512000
 6 
 7 b. 安装
 8 yum install libaio libaio-devel fio
 9 
10 c. 各类压测
11 # 测试随机写:
12 fio --filename=/data/test --iodepth=4 --ioengine=libaio -direct=1 --\
13 rw=randwrite --bs=16k --size=2G --numjobs=64 --runtime=20 --group_reporting --\
14 name=test-rand-write
15 # 测试顺序读取:
16 fio --filename=/data/test -iodepth=64 -ioengine=libaio --direct=1 --rw=read --\
17 bs=1m --size=2g --numjobs=4 --runtime=10 --group_reporting --name=test-read
18 # 测试顺序写性能
19 fio --filename=/data/test.big -iodepth=64 -ioengine=libaio -direct=1 -rw=write\
20 -bs=1m -size=2g -numjobs=4 -runtime=20 --group_reporting -name=test-write
21 测试随机读:
22 fio --filename=/data/test -iodepth=64 -ioengine=libaio -direct=1 -rw=randread -\
23 bs=4k -size=2G -numjobs=64 -runtime=20 --group_reporting -name=test-rand-read
24 # 16k,70%读取,30%写入:
25 随机:
26 fio --filename=/dev/sdb --direct=1 --rw=randrw --refill_buffers --norandommap --\
27 randrepeat=0 --ioengine=libaio --bs=4k --rwmixread=70 --iodepth=16 --numjobs=16 -\
28 -runtime=60 --group_reporting --name=73test
29 有序:
30 fio --filename=/dev/sdb --direct=1 --rw=rw --refill_buffers --norandommap --\
31 randrepeat=0 --ioengine=libaio --bs=4k --rwmixread=70 --iodepth=16 --numjobs=16 -\
32 -runtime=60 --group_reporting --name=73test
33 
34 #参数解读
35 # 重要参数解读:
36 --filename 需要压测的磁盘或者测试文件。
37 --direct=1 是否绕过文件系统缓存
38 -ioengine=libaio 采用异步或者同步IO
39 -iodepth=64 IO队列深度。一次发起多少个IO请求,一般SSD或者flash可以较大。
40 --numjobs=16 测试并发线程数。在RAID10或Raid5可加大参数。
41 --rwmixread=70 混合读写,read的比例。一般读写比例28或者37。
42 --group_reporting 统计汇总结果展示。
43 --name 起个名。
44 --rw=randrw 测试类型.
45 # 结果解读  主要看IOPS 与BW(吞吐量)延迟时间(毫秒)
46 IOPS
47 write: IOPS=5883, BW=91.9MiB/s (96.4MB/s)(1841MiB/20020msec)          *****
48 lat (usec): min=1677, max=78137, avg=43413.06, stdev=7210.57          *****
49 clat percentiles (usec):
50 | 1.00th=[23462], 5.00th=[25297], 10.00th=[26084], 20.00th=[27657],
51 | 30.00th=[28967], 40.00th=[30278], 50.00th=[31851], 60.00th=[33162],
52 | 70.00th=[34866], 80.00th=[36963], 90.00th=[40109], 95.00th=[42730],
53 | 99.00th=[49021], 99.50th=[51119], 99.90th=[59507], 99.95th=[61604],
54 | 99.99th=[64226
55 #IOPS是IO并发数,也就是存储上对于每秒IO的并发数的支持
56 #BW 吞吐量
57 调整参数压测多次取平均值
58 --numjobs=16 #服务器CPU 核心数,先调整为实际数量,再慢慢往下降去压测,去查看这个IOPS 与BW 是会有增长,延迟是否有增加
59 -iodepth=64 
复制代码

 

posted @   Linux运维-Friend  阅读(161)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示