预装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 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件) 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
Do everything well
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix