From 8e7c241f327d72dfeaff082deb4b899aca34ed81 Mon Sep 17 00:00:00 2001 From: Bill Zissimopoulos Date: Mon, 5 Dec 2016 16:37:31 -0800 Subject: [PATCH] doc: perf-tests: update Performance Testing document --- doc/perf-tests.adoc | 9 ++++ doc/perf-tests/file_mkdir_test.csv | 30 ------------ doc/perf-tests/file_rmdir_test.csv | 30 ------------ doc/perf-tests/file_tests.csv | 30 ++++++++++++ doc/perf-tests/file_tests.png | Bin 0 -> 31416 bytes doc/perf-tests/munge.py | 49 ++++++++++++++++---- doc/perf-tests/rdwr_cc_read_large_test.csv | 30 ------------ doc/perf-tests/rdwr_cc_write_large_test.csv | 30 ------------ doc/perf-tests/rdwr_nc_read_large_test.csv | 30 ------------ doc/perf-tests/rdwr_nc_read_page_test.csv | 2 +- doc/perf-tests/rdwr_nc_read_page_test.png | Bin 50180 -> 51545 bytes doc/perf-tests/rdwr_nc_write_large_test.csv | 30 ------------ doc/perf-tests/rdwr_tests.csv | 33 +++++++++++++ doc/perf-tests/rdwr_tests.png | Bin 0 -> 29095 bytes 14 files changed, 112 insertions(+), 191 deletions(-) delete mode 100644 doc/perf-tests/file_mkdir_test.csv delete mode 100644 doc/perf-tests/file_rmdir_test.csv create mode 100644 doc/perf-tests/file_tests.csv create mode 100644 doc/perf-tests/file_tests.png delete mode 100644 doc/perf-tests/rdwr_cc_read_large_test.csv delete mode 100644 doc/perf-tests/rdwr_cc_write_large_test.csv delete mode 100644 doc/perf-tests/rdwr_nc_read_large_test.csv delete mode 100644 doc/perf-tests/rdwr_nc_write_large_test.csv create mode 100644 doc/perf-tests/rdwr_tests.csv create mode 100644 doc/perf-tests/rdwr_tests.png diff --git a/doc/perf-tests.adoc b/doc/perf-tests.adoc index 4586f1d9..ff018a23 100644 --- a/doc/perf-tests.adoc +++ b/doc/perf-tests.adoc @@ -1,4 +1,5 @@ = Performance Testing +:caption: This document discusses performance testing for WinFsp. The goal of this performance testing is to discover optimization opportunities for WinFsp and compare its performance to that of NTFS and Dokany. @@ -6,6 +7,14 @@ This document discusses performance testing for WinFsp. The goal of this perform This performance testing shows that WinFsp has excellent performance in all tested scenarios. It outperforms NTFS in most scenarios (an unfair comparison as NTFS is a disk file system and WinFsp is tested with an in-memory file system). It also outperforms Dokany in all scenarios, often by an order of magnitude. +.File Tests +ifdef::env-browser[chart::bar[data-uri="perf-tests/file_tests.csv",file="perf-tests/file_tests.png",opt="y-label=time"]] +ifndef::env-browser[image::perf-tests/file_tests.png[]] + +.Read/Write Tests +ifdef::env-browser[chart::bar[data-uri="perf-tests/rdwr_tests.csv",file="perf-tests/rdwr_tests.png",opt="y-label=time"]] +ifndef::env-browser[image::perf-tests/rdwr_tests.png[]] + == Fsbench All testing was performed using a new performance test suite developed as part of WinFsp, called https://github.com/billziss-gh/winfsp/blob/master/tst/fsbench/fsbench.c[fsbench]. Fsbench was developed because it allows the creation of tests that are important to file system developers; for example, it can answer questions of the type: "how long does it take to delete 1000 files" or "how long does it take to list a directory with 10000 files in it". diff --git a/doc/perf-tests/file_mkdir_test.csv b/doc/perf-tests/file_mkdir_test.csv deleted file mode 100644 index a749009d..00000000 --- a/doc/perf-tests/file_mkdir_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -1000,0.13 -2000,0.25 -3000,0.36 -4000,0.48 -5000,0.70 -//winfsp-t0 -1000,0.05 -2000,0.09 -3000,0.41 -4000,0.53 -5000,0.66 -//winfsp-t1 -1000,0.05 -2000,0.09 -3000,0.39 -4000,0.55 -5000,0.66 -//winfsp-tinf -1000,0.05 -2000,0.09 -3000,0.39 -4000,0.66 -5000,0.66 -//dokany -1000,0.08 -2000,0.33 -3000,0.48 -4000,0.66 -5000,0.83 diff --git a/doc/perf-tests/file_rmdir_test.csv b/doc/perf-tests/file_rmdir_test.csv deleted file mode 100644 index c0412ecc..00000000 --- a/doc/perf-tests/file_rmdir_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -1000,0.11 -2000,0.28 -3000,0.36 -4000,0.41 -5000,0.59 -//winfsp-t0 -1000,0.08 -2000,0.14 -3000,0.20 -4000,0.27 -5000,0.34 -//winfsp-t1 -1000,0.06 -2000,0.12 -3000,0.17 -4000,0.22 -5000,0.28 -//winfsp-tinf -1000,0.06 -2000,0.13 -3000,0.16 -4000,0.22 -5000,0.28 -//dokany -1000,0.13 -2000,0.23 -3000,0.34 -4000,0.47 -5000,0.59 diff --git a/doc/perf-tests/file_tests.csv b/doc/perf-tests/file_tests.csv new file mode 100644 index 00000000..a806ff61 --- /dev/null +++ b/doc/perf-tests/file_tests.csv @@ -0,0 +1,30 @@ +//ntfs +file_create_test,1.94 +file_open_test,0.45 +file_overwrite_test,1.14 +file_list_test,0.41 +file_delete_test,1.03 +//winfsp-t0 +file_create_test,1.08 +file_open_test,0.28 +file_overwrite_test,0.30 +file_list_test,0.61 +file_delete_test,0.45 +//winfsp-t1 +file_create_test,0.95 +file_open_test,0.22 +file_overwrite_test,0.22 +file_list_test,0.59 +file_delete_test,0.34 +//winfsp-tinf +file_create_test,0.97 +file_open_test,0.20 +file_overwrite_test,0.22 +file_list_test,0.59 +file_delete_test,0.33 +//dokany +file_create_test,1.64 +file_open_test,0.67 +file_overwrite_test,1.64 +file_list_test,1.38 +file_delete_test,0.91 diff --git a/doc/perf-tests/file_tests.png b/doc/perf-tests/file_tests.png new file mode 100644 index 0000000000000000000000000000000000000000..0a49d3a35d3e4a0674d79774f54c7d721cba7545 GIT binary patch literal 31416 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 literal 0 HcmV?d00001 diff --git a/doc/perf-tests/munge.py b/doc/perf-tests/munge.py index eb24b16e..aacb7caf 100755 --- a/doc/perf-tests/munge.py +++ b/doc/perf-tests/munge.py @@ -6,6 +6,22 @@ import csv, os, sys snames = ["ntfs", "winfsp-t0", "winfsp-t1", "winfsp-tinf", "dokany"] +file_tnames = [ + "file_create_test", + "file_open_test", + "file_overwrite_test", + "file_list_test", + "file_delete_test"] + #"file_mkdir_test", + #"file_rmdir_test"] +rdwr_tnames = [ + "rdwr_cc_read_page_test", + "rdwr_cc_write_page_test", + "rdwr_nc_read_page_test", + "rdwr_nc_write_page_test", + "mmap_read_test", + "mmap_write_test"] +tnames = file_tnames + rdwr_tnames aggregate = min tests = {} @@ -18,28 +34,41 @@ for arg in sys.argv[1:]: tests.\ setdefault(row[0], {}).\ setdefault(name, {}).\ - setdefault(row[1], []).\ - append(row[2]) + setdefault(int(row[1]), []).\ + append(float(row[2])) if False: - for testname in sorted(tests.keys()): - print "%s:" % testname - test = tests[testname] + for tname in (tnames if tnames else sorted(tests.keys())): + print "%s:" % tname + test = tests[tname] for sname in (snames if snames else sorted(test.keys())): if sname not in test: continue print " %s:" % sname series = test[sname] for param in sorted(series.keys()): - print " %s: %s -> %s" % (param, series[param], aggregate(series[param])) + print " %s: %s -> %.2f" % (param, series[param], aggregate(series[param])) else: - for testname in sorted(tests.keys()): - with open(testname + ".csv", "w") as fout: - test = tests[testname] + for tname in (tnames if tnames else sorted(tests.keys())): + with open(tname + ".csv", "w") as fout: + test = tests[tname] for sname in (snames if snames else sorted(test.keys())): if sname not in test: continue fout.write("//%s\r\n" % sname) series = test[sname] for param in sorted(series.keys()): - fout.write("%s,%s\r\n" % (param, aggregate(series[param]))) + fout.write("%s,%.2f\r\n" % (param, aggregate(series[param]))) + def master_write(fname, tnames): + with open(fname + ".csv", "w") as fout: + for sname in snames: + fout.write("//%s\r\n" % sname) + for tname in (tnames if tnames else sorted(tests.keys())): + test = tests[tname] + if sname not in test: + continue + series = test[sname] + param = max(series.keys()) + fout.write("%s,%.2f\r\n" % (tname, aggregate(series[param]))) + master_write("file_tests", file_tnames) + master_write("rdwr_tests", rdwr_tnames) diff --git a/doc/perf-tests/rdwr_cc_read_large_test.csv b/doc/perf-tests/rdwr_cc_read_large_test.csv deleted file mode 100644 index e9602412..00000000 --- a/doc/perf-tests/rdwr_cc_read_large_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -100,0.08 -200,0.16 -300,0.22 -400,0.28 -500,0.36 -//winfsp-t0 -100,0.17 -200,0.34 -300,0.50 -400,0.66 -500,0.83 -//winfsp-t1 -100,0.17 -200,0.34 -300,0.50 -400,0.67 -500,0.83 -//winfsp-tinf -100,0.08 -200,0.22 -300,0.23 -400,0.33 -500,0.41 -//dokany -100,0.28 -200,0.58 -300,0.86 -400,1.16 -500,1.45 diff --git a/doc/perf-tests/rdwr_cc_write_large_test.csv b/doc/perf-tests/rdwr_cc_write_large_test.csv deleted file mode 100644 index 3992c0b6..00000000 --- a/doc/perf-tests/rdwr_cc_write_large_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -100,0.09 -200,0.22 -300,0.28 -400,0.38 -500,0.48 -//winfsp-t0 -100,0.17 -200,0.31 -300,0.48 -400,0.63 -500,0.80 -//winfsp-t1 -100,0.16 -200,0.31 -300,0.47 -400,0.61 -500,0.78 -//winfsp-tinf -100,0.11 -200,0.22 -300,0.34 -400,0.42 -500,0.53 -//dokany -100,0.33 -200,0.59 -300,0.91 -400,1.20 -500,1.47 diff --git a/doc/perf-tests/rdwr_nc_read_large_test.csv b/doc/perf-tests/rdwr_nc_read_large_test.csv deleted file mode 100644 index 61c4ddfd..00000000 --- a/doc/perf-tests/rdwr_nc_read_large_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -100,0.56 -200,1.16 -300,1.64 -400,2.20 -500,2.77 -//winfsp-t0 -100,0.16 -200,0.31 -300,0.47 -400,0.64 -500,0.78 -//winfsp-t1 -100,0.16 -200,0.33 -300,0.50 -400,0.67 -500,0.81 -//winfsp-tinf -100,0.16 -200,0.31 -300,0.48 -400,0.64 -500,0.78 -//dokany -100,0.30 -200,0.58 -300,0.84 -400,1.11 -500,1.41 diff --git a/doc/perf-tests/rdwr_nc_read_page_test.csv b/doc/perf-tests/rdwr_nc_read_page_test.csv index 15046c37..0e93b8d7 100644 --- a/doc/perf-tests/rdwr_nc_read_page_test.csv +++ b/doc/perf-tests/rdwr_nc_read_page_test.csv @@ -1,5 +1,5 @@ //ntfs -100,10.14 +100,9.38 200,21.39 300,19.56 400,26.11 diff --git a/doc/perf-tests/rdwr_nc_read_page_test.png b/doc/perf-tests/rdwr_nc_read_page_test.png index c8f8d569ee01e0e3b10faac10753b2ff092c3397..52709eed092f882ff83f1826de41aad99215c078 100644 GIT binary patch literal 51545 zcmcfpc|6qn`#+95MYf_SN|qx^WlNHE2&ah9F4-zY8BF$Nj46dAODbd=B_vzcv8!y! znr$p&WXo=hvCd$=kLL{4Ij{HUcKiMHE9W%kxj!D)#$ANT6Qn3x_go&87ivPaKUUoi5@NF0$y=3Z-BR&8?hahoWb za;!>N4k-kbA3w|CPY*g6-mSXeSq<2M>G1; zmR*cLzA_tMGMoQH|MNH@=n4G~n$J*1N>6%#4qp zwJGBkQIBm(7!?UZ%bY7^QKwyl!{I7hEuZpA7#_~q7^_HI&y|r#qoBpv?c2A<`q+_w zHr`>0d(0S1Hcb($p5ETJ{J}~VHO#90R3*YWRDPN?>DX87`g8NLlTmBbB~1LmQ0y1} zLuj~nskAzW*X}isG$i<6?8Y;@C|6eXc7_VWqIpiM%8n*k*Ky)9BNNlo^e-?bhpqV8 zNx#YOX|A{WKi<^-?mU<=D_c6Nb-_y69KX3otmaAkp34_o5?yM$7o3i3c&~YtcED)Y zUM`Xv5NK+zpn?6Z%5WSY6Mvx*kr~9%!~v+si$Xz%?-|u{hnE!o_<+n2jQS zZui_5levTX5zjolN1Nir3M}g-PR7?ar}Mh_&OH9W1s!mzC76DezsH!(YofHyiZo77 z_`%zAU1E?HEdks&o@uPS&`RayJ@$MUJsv^vV?B3bMCRRtz(ca^m8V&v?#|7b=sl2I zFRX?Q1?K*^@MWm3=|)?uew{_^GW<=W}uD|3a%^4&%A-T<_8`ArU97N2FZ z-kRs~`Z#l3!d7M>@c&2P-?#*Qma~@Gw@%kdcMjrMw{6oC=C`TmwE4jqh;6VjXkw>S z>0eMAaC3K0V-?UtqtPmSCB?<bbVNAwd!p5Bw~wja>!!Bqp$eeYv0y%;s$W^M#jlTW@d7qIgRbXK->> zmaI@vTwL75L;p)%qbzsDNwIrtZ>i~gU==u99(twJ?J~Eo46~5ymy__X90exY5g!`` za^`P7x9<#NvCBQv;+KGQ=5g8S@&G(1FZkEj5PZc;|22&TngRCWbKk4-CG){273g

MR+B(Cllqvs39|GvU!H2sSy-Kua8u_*7>M@Up- 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 z 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%0AQb+-!Fjj5|x2JMal> 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

Ja@)s4s$8V|iU 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 NdfInyRA@d7`+r%xgh>DZ diff --git a/doc/perf-tests/rdwr_nc_write_large_test.csv b/doc/perf-tests/rdwr_nc_write_large_test.csv deleted file mode 100644 index a74cdac1..00000000 --- a/doc/perf-tests/rdwr_nc_write_large_test.csv +++ /dev/null @@ -1,30 +0,0 @@ -//ntfs -100,0.86 -200,1.72 -300,2.53 -400,3.38 -500,4.33 -//winfsp-t0 -100,0.16 -200,0.31 -300,0.48 -400,0.63 -500,0.81 -//winfsp-t1 -100,0.19 -200,0.31 -300,0.48 -400,0.63 -500,0.81 -//winfsp-tinf -100,0.17 -200,0.33 -300,0.47 -400,0.63 -500,0.78 -//dokany -100,0.31 -200,0.61 -300,0.91 -400,1.22 -500,1.50 diff --git a/doc/perf-tests/rdwr_tests.csv b/doc/perf-tests/rdwr_tests.csv new file mode 100644 index 00000000..62e0f5d5 --- /dev/null +++ b/doc/perf-tests/rdwr_tests.csv @@ -0,0 +1,33 @@ +//ntfs +rdwr_cc_read_page_test,0.97 +rdwr_cc_write_page_test,1.19 +rdwr_nc_read_page_test,33.05 +rdwr_nc_write_page_test,35.45 +mmap_read_test,1.06 +mmap_write_test,0.72 +//winfsp-t0 +rdwr_cc_read_page_test,6.83 +rdwr_cc_write_page_test,6.12 +rdwr_nc_read_page_test,6.41 +rdwr_nc_write_page_test,6.41 +mmap_read_test,1.00 +mmap_write_test,0.72 +//winfsp-t1 +rdwr_cc_read_page_test,7.33 +rdwr_cc_write_page_test,6.17 +rdwr_nc_read_page_test,6.94 +rdwr_nc_write_page_test,6.51 +mmap_read_test,0.98 +mmap_write_test,0.73 +//winfsp-tinf +rdwr_cc_read_page_test,1.48 +rdwr_cc_write_page_test,1.70 +rdwr_nc_read_page_test,6.58 +rdwr_nc_write_page_test,6.42 +mmap_read_test,0.98 +mmap_write_test,0.73 +//dokany +rdwr_cc_read_page_test,11.20 +rdwr_cc_write_page_test,10.33 +rdwr_nc_read_page_test,10.59 +rdwr_nc_write_page_test,10.73 diff --git a/doc/perf-tests/rdwr_tests.png b/doc/perf-tests/rdwr_tests.png new file mode 100644 index 0000000000000000000000000000000000000000..417e630bcf07b85a0dd7718a3f7eb9acfd0eec7e GIT binary patch literal 29095 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