> From: zfs-discuss-boun...@opensolaris.org [mailto:zfs-discuss-
> boun...@opensolaris.org] On Behalf Of Edward Ned Harvey
>  
> Both the necessity to read & write the primary storage pool...  That's
very
> hurtful.  

Actually, I'm seeing two different modes of degradation:
(1) Previously described.  When I run into arc_meta_limit, in a pool of
approx 1.0M to 1.5M unique blocks, I suffer ~50 reads for every new unique
write.  Countermeasure was easy.  Increase arc_meta_limit.

(2) Now, in a pool with 2.4M unique blocks and dedup enabled (no verify), a
test file requires 10m38s to write and 2m54s to delete, but with dedup
disabled it only requires 0m40s to write and 0m13s to delete exactly the
same file.  So ... 13x performance degradation.  

zpool iostat is indicating the disks are fully utilized doing writes.  No
reads.  During this time, it is clear the only bottleneck is write iops.
There is still oodles of free mem.  I am not near arc_meta_limit, nor c_max.
The cpu is 99% idle.  It is write iops limited.  Period.

Assuming DDT maintenance is the only disk write overhead that dedup adds, I
can only conclude that with dedup enabled, and a couple million unique
blocks in the pool, the DDT must require substantial maintenance.  In my
case, something like 12 DDT writes for every 1 actual intended new unique
file block write.

For the heck of it, since this machine has no other purpose at the present
time, I plan to do two more tests.  And I'm open to suggestions if anyone
can think of anything else useful to measure: 

(1) I'm currently using a recordsize of 512b, because the intended purpose
of this test has been to rapidly generate a high number of new unique
blocks.  Now just to eliminate the possibility that I'm shooting myself in
the foot by systematically generating a worst case scenario, I'll try to
systematically generate a best-case scenario.  I'll push the recordsize back
up to 128k, and then repeat this test something slightly smaller than 128k.
Say, 120k. That way there should be plenty of room available for any write
aggregation the system may be trying to perform.

(2) For the heck of it, why not.  Disable ZIL and confirm that nothing
changes.  (Understanding so far is that all these writes are async, and
therefore ZIL should not be a factor.  Nice to confirm this belief.)

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to