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

Reply via email to