On 06/24/2011 02:29 PM, Sašo Kiselkov wrote: > Hi All, > > I'd like to ask about whether there is a method to enforce a certain txg > commit frequency on ZFS. I'm doing a large amount of video streaming > from a storage pool while also slowly continuously writing a constant > volume of data to it (using a normal file descriptor, *not* in O_SYNC). > When reading volume goes over a certain threshold (and average pool load > over ~50%), ZFS thinks it's running out of steam on the storage pool and > starts committing transactions more often which results in even greater > load on the pool. This leads to a sudden spike in I/O utilization on the > pool in roughly the following method: > > # streaming clients pool load [%] > 15 8% > 20 11% > 40 22% > 60 33% > 80 44% > --- around here txg timeouts start to shorten --- > 85 60% > 90 70% > 95 85% > > My application does a fair bit of caching and prefetching, so I have > zfetch disabled and primarycache set to only metadata. Also, reads > happen (on a per client basis) relatively infrequently, so I can easily > take it if the pool stops reading for a few seconds and just writes > data. The problem is, ZFS starts alternating between reads and writes > really quickly, which in turn starves me on IOPS and results in a huge > load spike. Judging on load numbers up to around 80 concurrent clients, > I suspect I could go up to 150 concurrent clients on this pool, but > because of this spike I top out at around 95-100 concurrent clients. > > Regards, > -- > Saso
Can please anybody comment on this? Is it even possible. Regards, -- Saso _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss