按此方案就不会破坏磁盘上的数据,对吗?

按此方案就不会破坏磁盘上的数据,对吗?

我正在尝试为我的同事创建一个脚本,用于现场使用,该脚本将对 Linux 服务器的内部磁盘施​​加压力。我计划添加一些逻辑来查找可用的 /dev/sd 等。但我想进行写入测试。我知道 fio 会清除 /dev/ 设备上现有的数据,我不想这样。我在想我可以用 dd 创建一个文件并对该文件运行 fio。本质上它应该仍然对驱动器施加压力并使其处于负载之下,但保留所有数据。

我想我将创建一个大小为分区剩余空间 90% 的文件,这样当磁盘承受压力时,我希望能够引起更多的臂驱动。

按此方案就不会破坏磁盘上的数据,对吗?

我计划运行的基本命令:

创建 10 GB 的文件

dd if=/dev/zero of=myFileSystem.img bs=512 count=19531250

启动 fio

device=myFileSystem.img runtime=30 fio default.fio

答案1

# df -T Filesystem Type 1K-blocks Used Available Use% Mounted on /dev/sda2 ext3 30969600 23578008 5818428 81% / devtmpfs devtmpfs 3937216 180 3937036 1% /dev tmpfs tmpfs 3937216 0 3937216 0% /dev/shm /dev/sdc1 ext3 864658784 44030960 776705716 6% /mnt

# size=641168811k fioFilename=/mnt/diskStressTempFile.1427125883.52 runtime=28800 fio defaultFile.fio

# cat defaultFile.fio

[global]
ioengine=libaio
direct=1
iodepth=64
rw=randread
time_based=1
runtime=${runtime}
filename=${fioFilename}
size=${size}

[default]
name=default
blocksize_range=1k-4M

但是创建文件的速度确实很慢。它基本上是在做dd if=/dev/zero of=/mnt/diskStressTempFile.1427125883.52

fallocate如果您事先不关心内容的话,这是创建大文件的更好方法。不幸的是,此功能在我使用的操作系统上似乎不可用。

相关内容