On Fri, 26 Feb 2010, Shane Cox wrote:
I've reviewed the forum archives and read a number of threads related to this
issue. However I
didn't find a root-cause explanation for these pauses, only talk of how to
ameliorate them. In my
particular case, I would like to know why zfs_log_writes are blocked for 180ms
on a mutex (seemingly
blocked on the intent log itself) when performing zil_itx_assign. Another
thread must have a lock on
the intent log, no? Overall, the system appears healthy as other system calls
(e.g., reads and
writes to network devices) complete successfully while writes to the intent log
are blocked ... so
the problem seems to be access to the zfs intent log.
Any additional insight would be appreciated.
As far as I am aware, none of the zfs authors has been willing to
address this issue in public. It is not clear (to me) if the
fundmental design of zfs transaction groups requires that writes stop
briefly until the transaction group has been flushed to disk. I
suspect that this is the case.
Perhaps zfs will never meet your timing requirements. Others here
have had considerable success by using RAID interface adaptor cards
with battery-backed cache memory and configuring those cards to "IT"
JBOD mode. By limiting the TXG group size to the amount which will
fit in battery-backed cache memory, the time to "commit" the TXG group
is dramatically reduced as long as the continual write rate does not
exceed what the backing disks can sustain. Unfortunately, this
may increase the total amount of data written to underlying storage.
Bob
--
Bob Friesenhahn
bfrie...@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss