概述
本文主要讲述Linux系统中内存/硬盘测速方法,通过软件sysbench以及dd命令实现。
sysbench安装
Ubuntu/Debian:
sudo apt-get update
sudo apt-get install sysbench
CentOS/RHEL:
sudo yum install epel-release
sudo yum install sysbench
sysbench测试
CPU压力测试
sysbench cpu --threads=4 run

内存测速/压测
内存压测
sysbench memory --threads=4 run

内存读写测试
内存读测试
sysbench --test=memory --memory-block-size=1M --memory-total-size=100G --memory-oper=read run

内存写测试
sysbench --test=memory --memory-block-size=1M --memory-total-size=100G --memory-oper=write run

dd命令硬盘测速
硬盘写入测速
sudo dd if=/dev/zero of=speedtest.tempfile bs=1M count=4096 oflag=direct
# 或
dd if=/dev/zero of=speedtest.tempfile bs=1M count=4096 oflag=direct
说明:
- 因为/dev/zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。
speedtest.tempfile
在那个盘测得就是那个盘- bs * count = 测试文件大小
oflag=direct
注意:写入是oflag
硬盘读取测速
sudo dd if=speedtest.tempfile of=/dev/null bs=1M iflag=direct
或
dd if=speedtest.tempfile of=/dev/null bs=1M iflag=direct
说明:
tempfile.speedtest
是写入测试后的文件,故此需要先测试写入- /dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在tempfile.speedtest 所在设备上,也相当于测试磁盘的读能力。
oflag=direct
将跳过内存缓存iflag=direct
注意,读取是iflag
硬盘IO测速/压测
sysbench fileio --threads=4 --file-block-size=1M --file-total-size=1G prepare
sysbench fileio --threads=4 --file-total-size=1G --file-test-mode=rndrw run
执行第一个命令

注意:执行第一个命令后会在当前目录生成一堆测试文件,先不要删除第二个命令会用到,如下:

执行第二个命令测试:

运行数据库压力测试(MySQL)
sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=password --mysql-db=test --threads=4 prepare
sysbench oltp_read_write --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=password --mysql-db=test --threads=4 run
https://www.syntaxspace.com/article/2506251457163020.html
评论