ClamFS Benchmark Page.ClamFS is a FUSE-based user-space file system for Linux with on-access anti-virus file scanning through clamd daemon. HardwareBenchmarked on Acer Aspire 5102 WLMi.CPUmodel name : AMD Turion(tm) 64 X2 Mobile Technology TL-50 stepping : 2 cpu MHz : 1600.000 cache size : 256 KB [...] cpu cores : 2 MemoryMemTotal: 898056 kB HDD/dev/hda: Timing cached reads: 1634 MB in 2.00 seconds = 817.47 MB/sec Timing buffered disk reads: 122 MB in 3.02 seconds = 40.35 MB/sec SoftwareOSDebian 4.0 Etch (prerelease) KernelLinux 2.6.18-4-amd64 SMP x86_64 Filesystem in USErspaceii fuse-module-2.6.18-4-amd64 2.3.0-4.2etch1+2.6.18.dfsg.1-11 ii fuse-source 2.3.0-4.2etch1 ii fuse-utils 2.5.3-4.1 ii libfuse-dev 2.5.3-4.1 ii libfuse2 2.5.3-4.1 Bonnie++ii bonnie++ 1.03a ResultsReiserFSResults for Bonnie++ on ReiserFS (without ClamFS).Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP vampire 2G 34509 80 33022 32 12211 8 26177 59 28460 10 124.0 0 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 13273 97 +++++ +++ 13548 98 15643 99 +++++ +++ 12690 100 ClamFS on ReiserFSResults for Bonnie++ on ClamFS with ReiserFS backend.Version 1.03 ------Sequential Output------ --Sequential Input- --Random- -Per Chr- --Block-- -Rewrite- -Per Chr- --Block-- --Seeks-- Machine Size K/sec %CP K/sec %CP K/sec %CP K/sec %CP K/sec %CP /sec %CP vampire 2G 22531 54 30630 8 12806 8 24631 64 29015 5 95.0 0 ------Sequential Create------ --------Random Create-------- -Create-- --Read--- -Delete-- -Create-- --Read--- -Delete-- files /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP /sec %CP 16 6524 12 30881 15 6517 12 6385 14 +++++ +++ 7121 12 HTML version of results, bonnie-reiserfs.txt, bonnie-clamfs-on-reiserfs.txt. ScanCache performanceTest files18 files with random data in different sizes (form 1kB to 2MB).Test commandfor i in `ls -1`; do /usr/bin/time -v dd if=$i of=/dev/null 2>&1 | egrep '(copied|wall)' ; done ScanCacheFirst run1024 bytes (1.0 kB) copied, 0.000127 seconds, 8.1 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 2048 bytes (2.0 kB) copied, 0.000136 seconds, 15.1 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 3072 bytes (3.1 kB) copied, 0.000126 seconds, 24.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 4096 bytes (4.1 kB) copied, 0.000159 seconds, 25.8 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 5120 bytes (5.1 kB) copied, 0.000196 seconds, 26.1 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.03 6144 bytes (6.1 kB) copied, 0.000186 seconds, 33.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 7168 bytes (7.2 kB) copied, 0.000179 seconds, 40.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 8192 bytes (8.2 kB) copied, 0.000162 seconds, 50.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 9216 bytes (9.2 kB) copied, 0.000218 seconds, 42.3 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 10240 bytes (10 kB) copied, 0.000178 seconds, 57.5 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 16384 bytes (16 kB) copied, 0.00024 seconds, 68.3 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 32768 bytes (33 kB) copied, 0.000393 seconds, 83.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 65536 bytes (66 kB) copied, 0.000602 seconds, 109 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.04 131072 bytes (131 kB) copied, 0.001036 seconds, 127 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.07 262144 bytes (262 kB) copied, 0.002015 seconds, 130 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.15 524288 bytes (524 kB) copied, 0.003933 seconds, 133 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.28 1048576 bytes (1.0 MB) copied, 0.00843 seconds, 124 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.57 2097152 bytes (2.1 MB) copied, 0.016713 seconds, 125 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.17 Next run1024 bytes (1.0 kB) copied, 9.9e-05 seconds, 10.3 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 2048 bytes (2.0 kB) copied, 9.5e-05 seconds, 21.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 3072 bytes (3.1 kB) copied, 0.0001 seconds, 31 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 4096 bytes (4.1 kB) copied, 0.002028 seconds, 2.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 5120 bytes (5.1 kB) copied, 0.000138 seconds, 37.1 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 6144 bytes (6.1 kB) copied, 0.000143 seconds, 43.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 7168 bytes (7.2 kB) copied, 0.00016 seconds, 45 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 8192 bytes (8.2 kB) copied, 0.000148 seconds, 55.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 9216 bytes (9.2 kB) copied, 0.000184 seconds, 50.1 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 10240 bytes (10 kB) copied, 0.000174 seconds, 58.9 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 16384 bytes (16 kB) copied, 0.000187 seconds, 87.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 32768 bytes (33 kB) copied, 0.000331 seconds, 99.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 65536 bytes (66 kB) copied, 0.000654 seconds, 100 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 131072 bytes (131 kB) copied, 0.001164 seconds, 113 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 262144 bytes (262 kB) copied, 0.00265 seconds, 98.9 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 524288 bytes (524 kB) copied, 0.011026 seconds, 47.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 1048576 bytes (1.0 MB) copied, 0.016141 seconds, 65.0 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 2097152 bytes (2.1 MB) copied, 0.018541 seconds, 113 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02Previous test repeated 10 times: time for j in `seq 1 10`; do echo "== $j ==" ;for i in `ls -1`; \ do /usr/bin/time -v dd if=$i of=/dev/null 2>&1 | egrep '(copied|wall)' ; done ; done [...] real 0m5.266s user 0m0.576s sys 0m1.552s Without ScanCacheEvery run1024 bytes (1.0 kB) copied, 9.8e-05 seconds, 10.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 2048 bytes (2.0 kB) copied, 0.000131 seconds, 15.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 3072 bytes (3.1 kB) copied, 0.002143 seconds, 1.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 4096 bytes (4.1 kB) copied, 0.000154 seconds, 26.6 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 5120 bytes (5.1 kB) copied, 0.005309 seconds, 964 kB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 6144 bytes (6.1 kB) copied, 0.000184 seconds, 33.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 7168 bytes (7.2 kB) copied, 0.000169 seconds, 42.4 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 8192 bytes (8.2 kB) copied, 0.000196 seconds, 41.8 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 9216 bytes (9.2 kB) copied, 0.000195 seconds, 47.3 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.00 10240 bytes (10 kB) copied, 0.008877 seconds, 1.2 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 16384 bytes (16 kB) copied, 0.000215 seconds, 76.2 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.01 32768 bytes (33 kB) copied, 0.000349 seconds, 93.9 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.02 65536 bytes (66 kB) copied, 0.000585 seconds, 112 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.04 131072 bytes (131 kB) copied, 0.001066 seconds, 123 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.07 262144 bytes (262 kB) copied, 0.00213 seconds, 123 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.14 524288 bytes (524 kB) copied, 0.004748 seconds, 110 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.28 1048576 bytes (1.0 MB) copied, 0.008783 seconds, 119 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.56 2097152 bytes (2.1 MB) copied, 0.020852 seconds, 101 MB/s Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.13Previous test repeated 10 times: time for j in `seq 1 10`; do echo "== $j ==" ;for i in `ls -1`; \ do /usr/bin/time -v dd if=$i of=/dev/null 2>&1 | egrep '(copied|wall)' ; done ; done [...] real 0m25.264s user 0m0.636s sys 0m1.472s ConclusionScanCache speeds up access to files accessed previously by reducing open() delay. Overall performance of file system is lower than without ClamFS probably because its user-space nature, and need to call copy_from/to_userspace() for every file operation.
Last updated on Thu, 24 Feb 2022 18:35:10 +0000
|