Robert Milkowski writes: > Hello Jonathan, > > Tuesday, February 6, 2007, 5:00:07 PM, you wrote: > > JE> On Feb 6, 2007, at 06:55, Robert Milkowski wrote: > > >> Hello zfs-discuss, > >> > >> It looks like when zfs issues write cache flush commands se3510 > >> actually honors it. I do not have right now spare se3510 to be 100% > >> sure but comparing nfs/zfs server with se3510 to another nfs/ufs > >> server with se3510 with "Periodic Cache Flush Time" set to disable > >> or so longer time I can see that cache utilization on nfs/ufs stays > >> about 48% while on nfs/zfs it's hardly reaches 20% and every few > >> seconds goes down to 0 (I guess every txg_time). > >> > >> nfs/zfs also has worse performance than nfs/ufs. > >> > >> Does anybody know how to tell se3510 not to honor write cache flush > >> commands? > > JE> I don't think you can .. DKIOCFLUSHWRITECACHE *should* tell the array > JE> to flush the cache. Gauging from the amount of calls that zfs makes to > JE> this vs ufs (fsck, lockfs, mount?) - i think you'll see the > JE> performance diff, > JE> particularly when you hit an NFS COMMIT. (If you don't use vdevs you > JE> may see another difference in zfs as the only place you'll hit is on > JE> the zil) > > IMHO it definitely shouldn't actually. The array has two controllers > and write cache is mirrored. Also this is not the only host using that > array. You can actually win much of a performance, especially with > nfs/zfs setup (lot of synchronous ops) I guess. >
Again it's a question of semantic. The intent of ZFS is to say put the bits on "stable storage". The controller then decides if the NVRAM qualifies as stable storage (is dual ported, batteries are up) and can ignore the request. If the battery charge gets low then the array needs to honor the flush request. No way for ZFS to adjust to array battery charge. So I'd argue the DKIOCFLUSHWRITECACHE is misnamed. The work going on is to allow the DKIOCFLUSHWRITECACHE to be qualified to mean "flush to rust" which I guess won't be used by ZFS or "flush to stable storage"; if NVRAM is considered stable enough by the array, then it will turn the request into a noop. -r _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss