ZFS write stalls (starving reads) and tuning
zfs_write_limit_override
Nikolay Denev
ndenev at gmail.com
Thu Feb 25 12:02:00 UTC 2010
On Feb 25, 2010, at 1:58 PM, Sam Fourman Jr. wrote:
>> Hi,
>>
>> What I posted was not a patch, but just the lines need to be added to dsl_pool.c and it should work for either 8 or CURRENT.
>> Here is a patch for 8-STABLE that I just generated, can you try that one (pasting in the email in case the email eats the attachment
>> ):
>>
>> --- .zfs/snapshot/orig/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c 2009-08-24 07:30:23.677549074 +0300
>> +++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c 2010-02-19 09:17:50.058020997 +0200
>> @@ -47,6 +47,11 @@
>> uint64_t zfs_write_limit_override = 0;
>> extern uint64_t zfs_write_limit_min;
>>
>> +SYSCTL_DECL(_vfs_zfs);
>> +TUNABLE_ULONG("vfs.zfs.write_limit_override", &zfs_write_limit_override);
>> +SYSCTL_ULONG(_vfs_zfs, OID_AUTO, zfs_write_limit_override, CTLFLAG_RW, &zfs_write_limit_override, 0,
>> + "Override maximum TXG size");
>> +
>> kmutex_t zfs_write_limit_lock;
>>
>> static pgcnt_t old_physmem = 0;
>>
>
>
> what setting have you found to be the best for zfs_write_limit_override ?
>
> Sam Fourman Jr.
> Fourman Networks
Hi,
I think you should experiment. Here I have 2G of ram, and have found 256M for the zfs_write_limit_override to provide
smooth writes without the stalls.
I started one console with zpool iostat -v 1 and started writing to one iSCSI exported zvol, and played with the sysctl until
the writes were steady.
Regards,
Niki Denev
More information about the freebsd-fs
mailing list