Actually it seems to be 3/4: dsl_pool.c 391 zfs_write_limit_max = ptob(physmem) >> zfs_write_limit_shift; 392 zfs_write_limit_inflated = MAX(zfs_write_limit_min, 393 spa_get_asize(dp->dp_spa, zfs_write_limit_max));
While spa_get_asize is: spa_misc.c 1249 uint64_t 1250 spa_get_asize(spa_t *spa, uint64_t lsize) 1251 { 1252 /* 1253 * For now, the worst case is 512-byte RAID-Z blocks, in which 1254 * case the space requirement is exactly 2x; so just assume that. 1255 * Add to this the fact that we can have up to 3 DVAs per bp, and 1256 * we have to multiply by a total of 6x. 1257 */ 1258 return (lsize * 6); 1259 } Which will result in: zfs_write_limit_inflated = MAX((32 << 20), (ptob(physmem) >> 3) * 6); Bob Friesenhahn wrote: > Even if I set zfs_write_limit_override to 8053063680 I am unable to > achieve the massive writes that Solaris 10 (141415-03) sends to my > drive array by default. > > When I read the blog entry at > http://blogs.sun.com/roch/entry/the_new_zfs_write_throttle, I see this > statement: > > "The new code keeps track of the amount of data accepted in a TXG and > the time it takes to sync. It dynamically adjusts that amount so that > each TXG sync takes about 5 seconds (txg_time variable). It also > clamps the limit to no more than 1/8th of physical memory." > > On my system I see that the "about 5 seconds" rule is being followed, > but see no sign of clamping the limit to no more than 1/8th of > physical memory. There is no sign of clamping at all. The writen > data is captured and does take about 5 seconds to write (good > estimate). > > On my system with 20GB of RAM, and ARC memory limit set to 10GB > (zfs:zfs_arc_max = 0x280000000), the maximum zfs_write_limit_override > value I can set is on the order of 8053063680, yet this results in a > much smaller amount of data being written per write cycle than the > Solaris 10 default operation. The default operation is 24 seconds of > no write activity followed by 5 seconds of write. > > On my system, 1/8 of memory would be 2.5GB. If I set the > zfs_write_limit_override value to 2684354560 then it seems that about > 1.2 seconds of data is captured for write. In this case I see 5 > seconds of no write followed by maybe a second of write. > > This causes me to believe that the algorithm is not implemented as > described in Solaris 10. > > Bob _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss