写一个shell脚本,自动循环运行fio
时间: 2023-07-01 13:19:52 浏览: 143
以下是一个简单的shell脚本,可以自动循环运行fio:
```
#!/bin/bash
# 设置测试参数
blocksize="4k"
iodepth="16"
runtime="60s"
filename="/dev/sdb"
jobname="testjob"
# 循环运行fio
while true
do
# 执行fio测试
fio --name=$jobname --ioengine=libaio --rw=randwrite --bs=$blocksize --iodepth=$iodepth --size=1G --filename=$filename --runtime=$runtime --time_based --end_fsync=1
# 暂停10秒
sleep 10
done
```
在脚本中,我们定义了一些测试参数,包括块大小、队列深度、运行时长、测试文件名和任务名称。然后使用一个while循环,不断执行fio测试,并在每次测试完成后暂停10秒,继续下一次测试。
需要注意的是,在实际使用时,您可能需要根据具体情况修改测试参数和循环条件,以满足您的需求。
相关问题
写一个shell脚本,在FIO读写时,每隔2s/5s分别给单个硬盘发送smartctl -A/smartctl -a命令,记录硬盘性能值
编写一个Shell脚本来定期检查硬盘性能并记录SMART状态,你可以创建一个名为`check_disk_performance.sh`的文件,内容如下:
```bash
#!/bin/bash
# 硬盘设备名称,这里假设为'/dev/sda'
HDD Device="/dev/sda"
# 检查间隔时间,单位秒
INTERVAL_2S=2
INTERVAL_5S=5
# 输出日志文件名
LOG_FILE="disk_performance.log"
# 使用函数来运行SMART命令并记录结果
run_smart_command() {
local command="$1"
echo "$(date) - Running $command on $HDD Device" >> ${LOG_FILE}
smartctl "$command" "${HDD Device}" >> ${LOG_FILE} 2>&1
}
# 主循环开始
while true; do
# 每隔2秒执行一次
run_smart_command -A
sleep ${INTERVAL_2S}
# 每隔5秒再执行一次,覆盖之前的记录
run_smart_command -a
sleep ${INTERVAL_5S}
done
# 添加执行权限
chmod +x check_disk_performance.sh
# 启动脚本
./check_disk_performance.sh &
```
这个脚本会启动一个无限循环,每2秒运行一次`smartctl -A`命令,每次运行都会更新到`disk_performance.log`文件中。5秒后,它会再次运行`smartctl -a`命令替换之前的数据。
阅读全文