zfs-fuseベンチマーク

zfs-fuseを試す - MasaHeroの日記で作成したものに対してbonnie++を走らせてみた。
結果は以下の通り。

format_version,bonnie_version,name,file_size,io_chunk_size,putc,putc_cpu,put_block,put_block_cpu,rewrite,rewrite_cpu,getc,getc_cpu,get_block,get_block_cpu,seeks,seeks_cpu,num_files,max_size,min_size,num_dirs,file_chunk_size,seq_create,seq_create_cpu,seq_stat,seq_stat_cpu,seq_del,seq_del_cpu,ran_create,ran_create_cpu,ran_stat,ran_stat_cpu,ran_del,ran_del_cpu,putc_latency,put_block_latency,rewrite_latency,getc_latency,get_block_latency,seeks_latency,seq_create_latency,seq_stat_latency,seq_del_latency,ran_create_latency,ran_stat_latency,ran_del_latency
1.96,1.96,zfs.comp.dedup_no,1,1277627806,4G,,29,11,57033,5,41754,5,2855,89,185465,8,69.4,0,16,,,,,4020,38,14875,15,8606,13,4084,31,15385,17,8351,13,465ms,1449ms,1308ms,81125us,654ms,1024ms,16583us,12137us,2328us,41691us,38629us,4900us
1.96,1.96,zfs.comp.dedup_sha256-verify,1,1277614203,4G,,16,6,6905,0,3444,0,2757,86,36131,1,41.4,0,16,,,,,724,6,11132,9,3568,5,708,5,18778,15,2952,4,1156ms,12307ms,11930ms,57048us,1557ms,9233ms,986ms,432ms,204ms,289ms,1048us,156ms
1.96,1.96,zfs.comp.dedup_sha256,1,1277608589,4G,,25,10,26547,2,5043,0,2626,83,93603,4,49.6,0,16,,,,,2499,24,17472,16,5565,7,2651,24,13856,16,5027,8,454ms,44461ms,11094ms,118ms,1112ms,6440ms,906ms,1094us,4494us,79084us,2554us,2648us
1.96,1.96,zfs.no_comp.dedup_no,1,1277636711,2G,,30,11,16283,1,10445,1,2740,87,41294,1,93.1,0,16,,,,,4497,35,16685,18,8578,13,4098,33,12530,12,6488,10,380ms,4762ms,4989ms,80400us,1666ms,1167ms,17941us,1809us,1561us,36698us,32660us,3885us
1.96,1.96,zfs.comp.dedup_verify,1,1277609716,4G,,19,7,6219,0,3186,0,2359,75,75037,3,46.8,0,16,,,,,2106,18,17394,17,7006,10,1880,17,14996,17,4833,7,369ms,79487ms,12806ms,128ms,996ms,8718ms,16415us,1413us,1473us,36404us,1137us,2714us
1.96,1.96,zfs.no_comp.dedup_sha256,1,1277593865,2G,,27,9,8024,0,4021,0,1685,52,29069,1,96.0,0,16,,,,,2363,23,10755,8,5353,6,3034,30,12636,12,3176,5,450ms,11538ms,9328ms,338ms,1568ms,2782ms,1276ms,238ms,159ms,44090us,1184us,62694us
1.96,1.96,zfs.no_comp.dedup_sha256-verify,1,1277625882,2G,,27,10,6852,0,3764,0,1933,60,27266,0,87.8,0,16,,,,,3333,31,15784,14,7276,10,3381,31,12927,11,5825,8,359ms,14010ms,10581ms,323ms,1796ms,2037ms,16442us,1743us,15174us,30264us,251ms,17866us
1.96,1.96,lvm_ext4,1,1277539864,4G,,533,96,75184,9,34893,4,2844,92,78783,4,146.0,2,16,,,,,90,0,+++++,+++,172,0,240,1,+++++,+++,214,0,18843us,2158ms,1081ms,38970us,235ms,924ms,4487us,8875us,3583us,1418us,1018us,1098us
1.96,1.96,zfs.no_comp.dedup_verify,1,1277624577,2G,,23,8,7443,0,3964,0,1980,62,28716,1,88.9,0,16,,,,,3349,32,17140,14,5822,7,3083,31,17606,16,7758,11,294ms,13791ms,10981ms,274ms,1696ms,4136ms,16249us,2176us,122ms,44523us,1004us,2810us

zfs側のCPU利用率が低く出てるところはFUSE側の使用率を量れてないせいかと思う。topでみてるとzfs-fuseが結構なCPUを使ってるのでこの結果は信用できない。
キャラクタ単位の書き込みでは圧縮の有無は誤差レベル。重複排除の影響が大きい。といってもext4に比べて1/20程度でどんぐりの背比べ。
ブロック単位の書き込みだと一気に差が縮まる。これはFUSEだからか?このレベルだとdedup=verifyの凶悪さがよく分かる。dedup=offに比べて1/10以下。sha256でも1/2になるのでdedupは性能に影響があるといえる。zfs.comp.dedup_noよりzfs.no_comp.dedup_noが遅いのは謎。再テストの必要があるかも。
読み取りはブロック単位、キャラクタ単位共にext4とさらに差を詰めた。最悪でも1/3程度とだいぶがんばっている。
メタデータ操作系はなぜかネイティブのext4の方が遅い結果となった。さすがに読み取りはext4が早いがそれ以外はぼろ負けとなっている。何故だ。もしかしてsyncされてない?