On 06/30/2011 01:10 PM, Jim Klimov wrote: > 2011-06-30 11:47, Sašo Kiselkov пишет: >> On 06/30/2011 02:49 AM, Jim Klimov wrote: >>> 2011-06-30 2:21, Sašo Kiselkov пишет: >>>> On 06/29/2011 02:33 PM, Sašo Kiselkov wrote: >>>>>> Also there is a buffer-size limit, like this (384Mb): >>>>>> set zfs:zfs_write_limit_override = 0x18000000 >>>>>> >>>>>> or on command-line like this: >>>>>> # echo zfs_write_limit_override/W0t402653184 | mdb -kw >>>>> Currently my value for this is 0. How should I set it? I'm writing >>>>> ~15MB/s and would like txg flushes to occur at most once every 10 >>>>> seconds. Should I set it to 150MB then? >>>>> >>>>>> We had similar spikes with big writes to a Thumper with SXCE in the >>>>>> pre-90's >>>>>> builds, when the system would stall for seconds while flushing a >>>>>> 30-second TXG >>>>>> full of data. Adding a reasonable megabyte limit solved the >>>>>> unresponsiveness >>>>>> problem for us, by making these flush-writes rather small and quick. >>>>> I need to do the opposite - I don't need to shorten the interval of >>>>> writes, I need to increase it. Can I do that using >>>>> zfs_write_limit_override? >>>> Just as a folloup, I've had a look at the tunables in dsl_pool.c and >>>> found that I could potentially influence the write pressure calculation >>>> by tuning zfs_txg_synctime_ms - do you think increasing this value from >>>> its default (1000ms) help me lower the write scheduling frequency? (I >>>> don't mind if a txg write takes even twice as long, my application >>>> buffers are on average 6 seconds long.) >>>> >>>> Regards, >>>> -- >>>> Saso >>> It might help. In my limited testing on oi_148a, >>> it seems that zfs_txg_synctime_ms and zfs_txg_timeout >>> are linked somehow (i.e. changing one value changed the >>> other accordingly). So in effect they may be two names >>> for the same tunable (one in single units of secs, another >>> in thousands of msecs). >> Well, to my understanding, zfs_txg_timeout is the timer limit on >> flushing pending txgs to disk - if the timer fires the current txg is >> written to disk regardless of its size. Otherwise the txg scheduling >> algorithm should take into account I/O pressure on the pool, estimate >> the remaining write bandwidth and fire when it estimates that a txg >> commit would overflow zfs_txg_synctime[_ms]. I tried increasing this >> value to 2000 or 3000, but without an effect - prehaps I need to set it >> at pool mount time or in /etc/system. Could somebody with more knowledge >> of these internals please chime in? > > > Somewhere in our discussion the "Reply-to-all" was lost. > Back to the list :) > > Saso: Did you try setting both the timeout limit and the > megabyte limit values, and did you see system IO patterns > correlate with these values? > > My understanding was lke yours above, so if things are > different in reality - I'm interested to know too. > > PS: I don't think you wrote: which OS version do you use?
Thanks for the suggestions, I'll try them out. I'm running oi_148. Regards, -- Saso _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss