dd if=/dev/frandom of=/zfs/test.bin bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 138.079 s, 7.6 MB/s
With dedup=off the result is this
dd if=/dev/frandom of=/zfs/test.bin bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 11.0236 s, 95.1 MB/s
My /dev/frandom device produce random bits at 223 MB/s. My system is
debian sid, E5200, 3Gb Ram
dd if=/dev/frandom of=/dev/null bs=1M count=1000
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB) copied, 4.70152 s, 223 MB/s
My zfsrc is at defaults. What is your performance with
dedup={on,sha256,verify} ?
Later I'll detailed post bonnie++ and iostat results.
--
To post to this group, send email to zfs-...@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/
To unsubscribe, reply using "remove me" as the subject.
Even on opensolaris list there's been no exact guideline as to "dedup
will incure x % performance penalty" or "you should have y amount of
memory to get decent performance".
The general guideline is that LOTS of RAM and SSD as L2ARC will
greatly increase dedup performance. Since we can't have L2ARC (yet),
dedup on zfs-fuse would probably be unusable (performance-wise) for
any large-enough dataset.
--
Fajar
This post gives the best information I've seen:
http://blogs.sun.com/roch/entry/dedup_performance_considerations1
In particular, the section titled 'So how large is the dedup table?'
is informative.
Nye
Very poor.
I've been running some testing of it this week, and here's what I've
found:
System: 4 7200RPM SATA drives in hardware RAID-10. Quad 2.6GHz
Core 2
CPU. 8GB RAM.
Virtual machine: 5.5GB RAM, 5x200GB virtual discs (on the above
physical
discs), quad CPU.
I've noticed very little difference between dedup=on and
dedup=verify.
I'm copying some real, live data on it from another machine. It's
taken
2 days 20 hours to copy 235GB. That's around 1MB/sec.
The system is largely idle, with one CPU reporting mostly wait
time, and
the rest just entirely idle. For example:
root@zfsbackup1:~# vmstat 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----
cpu----
r b swpd free buff cache si so bi bo in cs us
sy id wa
0 1 0 46220 14924 4536360 0 0 129 370 44 7 1
2 75 23
0 1 0 46088 14924 4536364 0 0 138 2 1077 1369 0
1 75 25
0 1 0 46088 14924 4536364 0 0 140 252 1275 1904 0
1 74 25
0 1 0 46088 14924 4536364 0 0 117 282 1052 1670 0
0 75 24
0 0 0 46088 14924 4536364 0 0 75 154 799 1316 1
1 75 23
0 1 0 46088 14924 4536364 0 0 96 0 626 989 0
0 77 23
0 1 0 46088 14924 4536364 0 0 88 0 592 973 0
0 76 24
0 1 0 46088 14924 4536364 0 0 92 0 603 1049 0
1 76 23
This seems to be entirely disc bounded, for example "iostat -x 10"
shows:
Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s
avgrq-sz avgqu-sz await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00
0.00 0.00 0.00 0.00 0.00
sdb 0.00 0.10 38.60 41.00 71.60 827.50
11.30 2.20 27.68 9.89 78.70
sdc 0.00 0.30 38.50 41.00 84.50 828.30
11.48 2.35 29.60 10.47 83.20
sdd 0.00 0.40 38.30 40.80 70.50 826.80
11.34 2.37 30.09 10.80 85.40
sde 0.00 0.10 38.70 41.00 59.60 827.00
11.12 2.19 27.53 9.71 77.40
sdf 0.00 0.00 37.40 41.50 69.60 824.50
11.33 2.33 29.54 10.56 83.30
sda is the system disc. The other discs are 80% utilized. Average
wait
time is around 30ms, and time to service was around 10ms. These
discs
have around a 10ms average access time, so dedup is largely seek
bounded, about about evenly spread across reads and writes.
Thought it
is writing more data at a time than it's reading by about 10x.
So, yeah, dedup is seek-crazy. Which isn't entirely surprising.
However,
I'll admit that I'm surprised that it's *THIS* slow.
That's what I've got for the moment.
Sean
--
To post to this group, send email to zfs-...@googlegroups.com
To visit our Web site, click on http://zfs-fuse.net/
To unsubscribe, reply using "remove me" as the subject.
In my tests I never had anything higher than 7-12MB/s for non zero
data. ZFS dedup is hungry for RAM. Is zfs-fuse L2ARC cache
functional ? That can be solution.
My best result was when I set ARC size to max RAM and turned off
caching of data in ARC to leave room for checksums with:
debian:~# zfs set primarycache=metadata zpool
I found some cool usage for zdb in measuring exactly how much RAM does
your system needs.
This prints your real DeDup table:
debian:~# zdb -DD zpool
DDT-sha256-zap-duplicate: 4526 entries, size 1610 on disk, 1388 in
core
DDT-sha256-zap-unique: 246330 entries, size 323 on disk, 155 in core