diff --git a/test/.gitignore b/test/.gitignore
index 4d88114677c05dfce47df9d3771ae89870155689..ef0b03d8dd66d5c356211c02ffa47e4882c00353 100644
--- a/test/.gitignore
+++ b/test/.gitignore
@@ -5,4 +5,6 @@ images/
 results/
 .vscode/
 __pycache__/
+records/
+*.bak
 
diff --git a/test/config_template.py b/test/config_template.py
index 6ba92cd874a64c6bc67d9107f97e81bc1aa9b814..3454ff84e1a01f7f02eccb379e3513e64e06bab1 100644
--- a/test/config_template.py
+++ b/test/config_template.py
@@ -18,15 +18,15 @@ class Config:
     # 文件系统大小参数
     IMAGE_SIZE = 1  # 以G为单位
     FILE_INTENSIVE = {
-        "file_number": 102400,
+        "file_number": 512000 * IMAGE_SIZE,
         "file_size": 1024,  # 以Byte为单位
         "dir_num": 100,
         "file_per_dir": 100,
     }
     DIR_INTENSIVE = {
-        "file_number": 102400,
+        "file_number": 102400 * IMAGE_SIZE,
         "file_size": 1024,
-        "dir_num": 102400,
+        "dir_num": 102400 * IMAGE_SIZE,
         "file_per_dir": 1,
     }
     # 选择文件系统配置
diff --git a/test/run_test.sh b/test/run_test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..2835608f7de04762ad1a6cf0e615aa2dd5d5041d
--- /dev/null
+++ b/test/run_test.sh
@@ -0,0 +1,164 @@
+#!/bin/bash
+
+set -e # 遇到错误即停止
+
+
+################## 参数 satrt ###############
+ROUND=3                           # 运行轮次
+DISKSIZE=(1 5 10 20 50)           # 文件系统大小
+TYPE=f                            # 文件密集型,可选值 {f, d}
+CONFIG_PREFIX=./test_configure/   # 配置文件所在前缀
+RECORD_PREFIX=./records/          # 保存所有的配置文件
+THREAD=(1 2 4 8 16)
+PYTHON_ENV=
+
+if [ -z %{PYTHON_ENV} ];then
+    conda activate ${PYTHON_ENV}
+fi
+################## 参数 end ###################
+
+# 将配置文件`config.py`临时保存起来
+store_config(){
+    mv config.py config.py.bak
+    cp ${config} config.py
+}
+
+recover_config(){
+    rm config.py
+    mv config.py.bak config.py
+}
+
+# 将生成的文件拷贝到record指定的目录
+do_recore(){
+    if [ ${IS_SYSTEM_FSCK} -gt 0 ];then
+        record_path=${record}/${i}/FSCK/
+        mkdir -p ${record_path}
+        cp ./results/*-sys* ${record_path}
+    else
+        record_path=${record}/${i}/wFSCK_${thread}/
+        mkdir -p ${record_path}
+        for tmp_file in `ls ./results | grep -v sys | xargs` 
+        do
+            cp ./results/${tmp_file} ${record_path}
+        done
+        # ${record_path}
+    fi
+}
+
+do_check(){
+    # echo "do check. system? ${IS_SYSTEM_FSCK}. thread ${thread}. disk ${i}" 
+
+    if [ ${IS_SYSTEM_FSCK} -gt 0 ];then
+        python3 test.py -s
+    else
+        python3 test.py --thread ${thread}
+    fi
+
+    do_recore
+    
+}
+
+check(){
+    # echo "doing a check " ${config} ${record}
+    store_config
+
+    for thread in "${THREAD[@]}"
+    do
+        # echo ${thread}
+        IS_SYSTEM_FSCK=0
+        do_check
+    done
+
+    IS_SYSTEM_FSCK=1
+    do_check
+
+    recover_config
+}
+
+testing(){
+    for((round=0;round<${ROUND};round++)) do
+
+        echo "round" $round "is start".
+        record=${RECORD_PREFIX}round${round} # 该次round保存的位置
+        # echo ${record}
+        for i in "${DISKSIZE[@]}" 
+        do
+            config=${CONFIG_PREFIX}config_${TYPE}_${i}.py
+            check
+        done
+    done
+}
+
+parsing_get_time(){
+    echo `grep Elapsed $1 |  tr ' ' '\n' | tail -1`
+}
+
+parsing(){
+    for((round=0;round<${ROUND};round++));do
+        # set -x
+        echo "***** round $round *****".
+        record=${RECORD_PREFIX}round${round} # 该次round保存的位置
+        
+        # 标题
+        line="\t"
+        for disk in "${DISKSIZE[@]}";do
+            line+="${disk}G"
+            line+="\t"
+        done
+        echo -e ${line}
+
+        # 系统 fsck
+        line="FSCK\t"
+        for disk in "${DISKSIZE[@]}";do
+            record_path=${record}/${disk}/FSCK/runtime-sys.txt
+            line+=`parsing_get_time ${record_path}`
+            line+="\t"
+        done
+        echo -e ${line}    
+
+        # our fsck 
+        for thread in "${THREAD[@]}"
+        do
+            line="wFSCK_${thread}\t"
+            for disk in "${DISKSIZE[@]}";do
+                record_path=${record}/${disk}/wFSCK_${thread}/runtime.txt
+                line+=`parsing_get_time ${record_path}`
+                line+="\t"
+            done
+            echo -e ${line} 
+        done
+
+    done
+}
+
+help(){
+    echo -e "\
+    -t 测试
+    -p 解析\
+"
+}
+
+
+options="tp"  
+while getopts $options opt; do
+    case $opt in
+        p)
+            # echo "parsing...." 
+            parsing
+            ;;
+        t)   
+            # echo "testing....."  
+            testing
+            ;;
+        ?)
+            help
+            exit 1
+    esac
+done
+
+
+
+
+
+
+
diff --git a/test/test_configure/config_d_1.py b/test/test_configure/config_d_1.py
new file mode 100644
index 0000000000000000000000000000000000000000..2d2529978f0bb1c5435a1ff67acda78a9b5e4e0f
--- /dev/null
+++ b/test/test_configure/config_d_1.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 1  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = DIR_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_d_10.py b/test/test_configure/config_d_10.py
new file mode 100644
index 0000000000000000000000000000000000000000..988b498797ae8686dd87459c316b665699845b4c
--- /dev/null
+++ b/test/test_configure/config_d_10.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 10  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = DIR_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_d_20.py b/test/test_configure/config_d_20.py
new file mode 100644
index 0000000000000000000000000000000000000000..895e85be9ceba702b021e1215da57d13c119ddb0
--- /dev/null
+++ b/test/test_configure/config_d_20.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 20  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = DIR_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_d_5.py b/test/test_configure/config_d_5.py
new file mode 100644
index 0000000000000000000000000000000000000000..72a3bf1e0e68ceec9722a3548f151071f3e3f15e
--- /dev/null
+++ b/test/test_configure/config_d_5.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 5  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = DIR_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_d_50.py b/test/test_configure/config_d_50.py
new file mode 100644
index 0000000000000000000000000000000000000000..d21fc7e1203c689cacd2133e1e917abb25142c3c
--- /dev/null
+++ b/test/test_configure/config_d_50.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 50  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = DIR_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_f_1.py b/test/test_configure/config_f_1.py
new file mode 100644
index 0000000000000000000000000000000000000000..3454ff84e1a01f7f02eccb379e3513e64e06bab1
--- /dev/null
+++ b/test/test_configure/config_f_1.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 1  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = FILE_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_f_10.py b/test/test_configure/config_f_10.py
new file mode 100644
index 0000000000000000000000000000000000000000..488d21f387399c3df8e3b072d630eb5e6e24ef89
--- /dev/null
+++ b/test/test_configure/config_f_10.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 10  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = FILE_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_f_20.py b/test/test_configure/config_f_20.py
new file mode 100644
index 0000000000000000000000000000000000000000..b1e00d5dfc6b91df2561c84995d5a77f3cc133f7
--- /dev/null
+++ b/test/test_configure/config_f_20.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 20  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = FILE_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_f_5.py b/test/test_configure/config_f_5.py
new file mode 100644
index 0000000000000000000000000000000000000000..21dd1def049df4c3ea4ee435a3f22a05a01b9dbb
--- /dev/null
+++ b/test/test_configure/config_f_5.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 5  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = FILE_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/test_configure/config_f_50.py b/test/test_configure/config_f_50.py
new file mode 100644
index 0000000000000000000000000000000000000000..5e7a8dc96371badddd7f167a882dc15e18a76711
--- /dev/null
+++ b/test/test_configure/config_f_50.py
@@ -0,0 +1,43 @@
+"""
+Copy this file to config.py and change the values to match your system
+"""
+
+import os
+
+
+class Config:
+    PROJDIR = './'  # 项目地址
+    RESULTPATH = PROJDIR + 'results'  # 结果地址
+    IMAGEPATH = PROJDIR + 'images'  # 镜像地址
+    FSCKEXE = 'fsck.f2fs'
+    FSMARKEXE = PROJDIR + 'fs_mark-3.3/fs_mark'
+    CLEARCACHE = PROJDIR + 'scripts/clear_cache.sh'
+    FSCK_OUTPUT = 'fsck.txt'
+    RUNTIME_OUTPUT = 'runtime.txt'
+
+    # 文件系统大小参数
+    IMAGE_SIZE = 50  # 以G为单位
+    FILE_INTENSIVE = {
+        "file_number": 512000 * IMAGE_SIZE,
+        "file_size": 1024,  # 以Byte为单位
+        "dir_num": 100,
+        "file_per_dir": 100,
+    }
+    DIR_INTENSIVE = {
+        "file_number": 102400 * IMAGE_SIZE,
+        "file_size": 1024,
+        "dir_num": 102400 * IMAGE_SIZE,
+        "file_per_dir": 1,
+    }
+    # 选择文件系统配置
+    FS_CONFIG = FILE_INTENSIVE
+
+    TESTS = {
+        "runtime": False,
+        "bandwidth": False,
+    }
+
+
+for path in [Config.RESULTPATH, Config.IMAGEPATH]:
+    if not os.path.isdir(path):
+        os.mkdir(path)
diff --git a/test/utils.py b/test/utils.py
index 917e5e7e5db8d87ffcc4a3b9d57d8f32c82ac378..444f6550d77c428f26ef9014a4a240208e132999 100644
--- a/test/utils.py
+++ b/test/utils.py
@@ -77,6 +77,7 @@ class ArgParser:
         if args.system:
             return ""
         else:
-            return f" --thread-number {self.thread} \
-                      --free-thread {self.free}"
+            # return f" --thread-number {self.thread} \
+                    #   --free-thread {self.free}"
+            return f" --thread-number {self.thread} --no-scheduler "