diff --git a/.github/workflows/resources/vdbench_big_file.conf b/.github/workflows/resources/vdbench_big_file.conf index 86267c45b31d..f3f1c662cfad 100644 --- a/.github/workflows/resources/vdbench_big_file.conf +++ b/.github/workflows/resources/vdbench_big_file.conf @@ -1,7 +1,8 @@ +data_errors=1 fsd=fsd1,anchor=/tmp/vdbench/vdbench-big,depth=1,width=1,files=4,size=1g,openflags=o_direct fwd=fwd1,fsd=fsd1,operation=write,xfersize=1m,fileio=sequential,fileselect=sequential,threads=4 fwd=fwd2,fsd=fsd1,operation=read,xfersize=1m,fileio=sequential,fileselect=sequential,threads=4 rd=rd1,fwd=fwd1,fwdrate=max,format=restart,elapsed=10,interval=1 -rd=rd2,fwd=fwd2,fwdrate=max,format=restart,elapsed=10,interval=1 \ No newline at end of file +rd=rd2,fwd=fwd2,fwdrate=max,format=restart,elapsed=10,interval=1 diff --git a/.github/workflows/resources/vdbench_long_run.conf b/.github/workflows/resources/vdbench_long_run.conf new file mode 100644 index 000000000000..6a2349484d64 --- /dev/null +++ b/.github/workflows/resources/vdbench_long_run.conf @@ -0,0 +1,4 @@ +data_errors=1 +fsd=fsd1,anchor=/tmp/vdbench/long-run,depth=1,width=10,files=5,sizes=(100m,0),shared=yes,openflags=o_direct +fwd=fwd1,fsd=fsd1,threads=10,xfersize=(512,20,4k,20,64k,20,512k,20,1024k,20),fileio=random,fileselect=random,rdpct=50 +rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=2000,interval=1 diff --git a/.github/workflows/resources/vdbench_small_file.conf b/.github/workflows/resources/vdbench_small_file.conf index 1f92f92555aa..a62c6d74a9de 100644 --- a/.github/workflows/resources/vdbench_small_file.conf +++ b/.github/workflows/resources/vdbench_small_file.conf @@ -1,3 +1,4 @@ +data_errors=1 fsd=fsd1,anchor=/tmp/vdbench/vdbench-small,depth=3,width=10,files=10,size=128k,openflags=o_direct fwd=fwd1,fsd=fsd1,operation=write,xfersize=128k,fileio=random,fileselect=random,threads=4 @@ -6,4 +7,4 @@ fwd=fwd3,fsd=fsd1,rdpct=70,xfersize=128k,fileio=random,fileselect=random,threads rd=rd1,fwd=fwd1,fwdrate=max,format=restart,elapsed=60,interval=1 rd=rd2,fwd=fwd2,fwdrate=max,format=restart,elapsed=60,interval=1 -rd=rd3,fwd=fwd3,fwdrate=max,format=restart,elapsed=60,interval=1 \ No newline at end of file +rd=rd3,fwd=fwd3,fwdrate=max,format=restart,elapsed=60,interval=1 diff --git a/.github/workflows/vdbench.yml b/.github/workflows/vdbench.yml index 9dcce8ed2b99..f823b2df17bd 100644 --- a/.github/workflows/vdbench.yml +++ b/.github/workflows/vdbench.yml @@ -67,12 +67,22 @@ jobs: meta_url=$(get_meta_url ${{matrix.meta}}) ./juicefs format $meta_url vdbench-big --storage minio --bucket http://127.0.0.1:19000/mypics --access-key minioadmin --secret-key minioadmin ./juicefs mount -d $meta_url /tmp/vdbench --no-usage-report - vdbench/vdbench -f .github/workflows/resources/vdbench_big_file.conf + vdbench/vdbench -f .github/workflows/resources/vdbench_big_file.conf -jn - uses: actions/upload-artifact@v3 with: name: output-big path: output + + - name: check vdbench log + if: always() + shell: bash + run: | + grep -i "java.lang.RuntimeException" output/errorlog.html && exit 1 || true + if ! grep -q "Vdbench execution completed successfully" output/logfile.html; then + echo "vdbench not completed succeed" + exit 1 + fi - name: Clean run: | @@ -93,12 +103,59 @@ jobs: meta_url=$(get_meta_url ${{matrix.meta}}) ./juicefs format $meta_url vdbench-small --storage minio --bucket http://127.0.0.1:19000/mypics --access-key minioadmin --secret-key minioadmin ./juicefs mount -d $meta_url /tmp/vdbench --no-usage-report - vdbench/vdbench -f .github/workflows/resources/vdbench_small_file.conf + vdbench/vdbench -f .github/workflows/resources/vdbench_small_file.conf -jn - uses: actions/upload-artifact@v3 with: name: output-small path: output + + - name: check vdbench log + if: always() + shell: bash + run: | + grep -i "java.lang.RuntimeException" output/errorlog.html && exit 1 || true + if ! grep -q "Vdbench execution completed successfully" output/logfile.html; then + echo "vdbench not completed succeed" + exit 1 + fi + + - name: Clean + run: | + source .github/scripts/start_meta_engine.sh + meta_url=$(get_meta_url ${{matrix.meta}}) + rm /var/jfsCache/ -rf || true + if [ -d /tmp/vdbench ]; then + ./juicefs umount /tmp/vdbench || true + fi + uuid=$(./juicefs status $meta_url | grep UUID | cut -d '"' -f 4) || true + if [ -n "$uuid" ];then + sudo ./juicefs destroy --yes $meta_url $uuid + fi + + - name: vdbench-long-time + shell: bash + run: | + source .github/scripts/start_meta_engine.sh + meta_url=$(get_meta_url ${{matrix.meta}}) + ./juicefs format $meta_url vdbench-long-time --storage minio --bucket http://127.0.0.1:19000/mypics --access-key minioadmin --secret-key minioadmin + ./juicefs mount -d $meta_url /tmp/vdbench --no-usage-report + vdbench/vdbench -f .github/workflows/resources/vdbench_long_time.conf -jn + + - uses: actions/upload-artifact@v3 + with: + name: output-big + path: output + + - name: check vdbench log + if: always() + shell: bash + run: | + grep -i "java.lang.RuntimeException" output/errorlog.html && exit 1 || true + if ! grep -q "Vdbench execution completed successfully" output/logfile.html; then + echo "vdbench not completed succeed" + exit 1 + fi - name: log if: always() @@ -106,7 +163,7 @@ jobs: run: | tail -300 ~/.juicefs/juicefs.log grep ":" ~/.juicefs/juicefs.log && exit 1 || true - + - name: Send Slack Notification if: failure() uses: juicedata/slack-notify-action@main