前言:作为测试工程师,在测试存储项目或者NAS产品的时候,我们经常会去测试产品的文件写入能力,写入速度,稳定性,大文件,小文件多建立等,还有稳定性测试,3*24小时的持续性写入,这个时候就用到了sync。
其次,在进行存储产品测试的时候,一般都会遇到,共享目录,比如nfs共享分布卷,副本卷、纠错卷的写入性能测试。但是测试完后就会有垃圾的二进制文件产生,就需要清理,因为分布、副本、纠错卷会分布在多节点上,这就用到了ansible命令(最小化安装linux系统一般没有,需要后期自己安装ansible)
作用:
- sync实现文件快速写入磁盘,同步下磁盘当前真实空间
- ansible 通过配置,实现一个节点命令,多个节点同时执行,在此是为了清理磁盘垃圾文件
- echo 3 > /proc/sys/vm/drop_caches 手动释放cached中的内存
#!/bin/sh
export test=fio
echo "副本卷cluster-randwrite4k4job"
echo $(date +%F%n%T)
fio -directory=/hlstor/cluster/fubenjuan1 -rw=randwrite -bs=4k -direct=1 -iodepth 8 -ioengine=libaio -size 35G -thread -numjobs=4 -group_reporting -name=randwrite4k_4job
echo $(date +%F%n%T)
sync
echo 3 > /proc/sys/vm/drop_caches
ansible all -m shell -a "/tmp/qingli.sh"
echo "副本卷cluster-randread4k4job"
echo $(date +%F%n%T)
fio -directory=/hlstor/cluster/fubenjuan1 -rw=randread -bs=4k -direct=1 -iodepth 8 -ioengine=libaio -size 35G -thread -numjobs=4 -group_reporting -name=randwrite4k_4job
echo $(date +%F%n%T)
sync
echo 3 > /proc/sys/vm/drop_caches
ansible all -m shell -a "/tmp/qingli.sh"
rm -f /hlstor/cluster/fubenjuan1/randwrite4k_4job*
如上代码所示,
1、在进行了fio随机写的命令执行完后:
执行了sync,让随机写的文件和内容落到实际物理硬盘上
执行echo 3 > /proc/sys/vm/drop_caches 手动释放内存
2、随机读的操作后,也执行了响应的操作
执行 ansible all -m shell -a "/tmp/qingli.sh" 多节点执行清理命令
执行 rm -f /hlstor/cluster/fubenjuan1/randwrite4k_4job* 删除生成的垃圾二进制文件
有问题请留言,看到必回复