Working with a small txg_time means we are hit by the pool sync overhead more often. This is why the per second throughpuot has smaller peak values.
With txg_time = 5, we have another problem which is that depending on timing of the pool sync, some txg can end up with too little data in them and sync quickly. We're closing in (I hope) on fixing both issues: 6429205 each zpool needs to monitor its throughput and throttle heavy writers 6415647 Sequential writing is jumping http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id= -r Jesse DeFer writes: > OK, I tried it with txg_time set to 1 and am seeing less predictable > results. The first time I ran the test it completed in 27 seconds (vs > 24s for ufs or 42s with txg_time=5). Further tests ran from 27s to > 43s, about half the time greater than 40s. > > zpool iostat doesn't show the large no-writes gaps, but it is still very > bursty and peak bandwidth is lower. Here is a 29s run: > > tank 113K 464G 0 0 0 0 > tank 113K 464G 0 226 0 28.2M > tank 40.1M 464G 0 441 0 46.9M > tank 88.2M 464G 0 384 0 39.8M > tank 136M 464G 0 445 0 47.4M > tank 184M 464G 0 412 0 43.4M > tank 232M 464G 0 411 0 43.2M > tank 272M 464G 0 402 0 42.1M > tank 320M 464G 0 435 0 46.3M > tank 368M 464G 0 366 63.4K 37.7M > tank 408M 464G 0 494 0 53.6M > tank 456M 464G 0 360 0 36.8M > tank 496M 464G 0 420 0 44.5M > tank 544M 463G 0 439 0 46.8M > tank 585M 463G 0 370 0 38.2M > tank 633M 463G 0 407 0 42.6M > tank 673M 463G 0 457 0 49.0M > tank 713M 463G 0 368 0 37.9M > tank 761M 463G 0 443 0 47.2M > tank 801M 463G 0 380 63.4K 39.4M > tank 844M 463G 0 444 63.4K 47.4M > tank 879M 463G 0 184 0 14.9M > tank 879M 463G 0 339 0 33.4M > tank 913M 463G 0 215 0 26.5M > tank 944M 463G 0 393 63.4K 36.4M > tank 976M 463G 0 171 63.4K 10.5M > tank 1008M 463G 0 237 63.4K 21.6M > tank 1008M 463G 0 312 0 31.5M > tank 1.02G 463G 0 137 0 9.05M > tank 1.05G 463G 0 313 0 23.4M > tank 1.05G 463G 0 0 0 0 > > > Jesse > > > Jesse, > > > > This isn't a stall -- it's just the natural rhythm of > > pushing out > > transaction groups. ZFS collects work (transactions) > > until either > > the transaction group is full (measured in terms of > > how much memory > > the system has), or five seconds elapse -- whichever > > comes first. > > > > Your data would seem to suggest that the read side > > isn't delivering > > data as fast as ZFS can write it. However, it's > > possible that > > there's some sort of 'breathing' effect that's > > hurting performance. > > One simple experiment you could try: patch txg_time > > to 1. That > > will cause ZFS to push transaction groups every > > second instead of > > the default of every 5 seconds. If this helps (or if > > it doesn't), > > please let us know. > > > > Thanks, > > > > Jeff > > > > Jesse DeFer wrote: > > > Hello, > > > > > > I am having problems with ZFS stalling when > > writing, any help in troubleshooting would be > > appreciated. Every 5 seconds or so the write > > bandwidth drops to zero, then picks up a few seconds > > later (see the zpool iostat at the bottom of this > > message). I am running SXDE, snv_55b. > > > > > > My test consists of copying a 1gb file (with cp) > > between two drives, one 80GB PATA, one 500GB SATA. > > The first drive is the system drive (UFS), the > > second is for data. I have configured the data > > drive with UFS and it does not exhibit the stalling > > problem and it runs in almost half the time. I have > > tried many different ZFS settings as well: > > atime=off, compression=off, checksums=off, > > zil_disable=1 all to no effect. CPU jumps to about > > 25% system time during the stalls, and hovers around > > 5% when data is being transferred. > > > > # zpool iostat 1 > > capacity operations bandwidth > > sed avail read write read write > > > ---------- ----- ----- ----- ----- ----- > > ----- > > tank 183M 464G 0 17 1.12K 1.93M > > tank 183M 464G 0 457 0 57.2M > > tank 183M 464G 0 445 0 55.7M > > tank 183M 464G 0 405 0 50.7M > > tank 366M 464G 0 226 0 4.97M > > tank 366M 464G 0 0 0 0 > > tank 366M 464G 0 0 0 0 > > tank 366M 464G 0 0 0 0 > > tank 366M 464G 0 200 0 25.0M > > tank 366M 464G 0 431 0 54.0M > > tank 366M 464G 0 445 0 55.7M > > tank 366M 464G 0 423 0 53.0M > > tank 574M 463G 0 270 0 18.1M > > tank 574M 463G 0 0 0 0 > > tank 574M 463G 0 0 0 0 > > tank 574M 463G 0 0 0 0 > > tank 574M 463G 0 164 0 20.5M > > tank 574M 463G 0 504 0 63.1M > > tank 574M 463G 0 405 0 50.7M > > tank 753M 463G 0 404 0 42.6M > > tank 753M 463G 0 0 0 0 > > tank 753M 463G 0 0 0 0 > > tank 753M 463G 0 0 0 0 > > tank 753M 463G 0 343 0 42.9M > > tank 753M 463G 0 476 0 59.5M > > tank 753M 463G 0 465 0 50.4M > > tank 907M 463G 0 68 0 390K > > tank 907M 463G 0 0 0 0 > > tank 907M 463G 0 11 0 1.40M > > tank 907M 463G 0 451 0 56.4M > > tank 907M 463G 0 492 0 61.5M > > tank 1.01G 463G 0 139 0 7.94M > > tank 1.01G 463G 0 0 0 0 > > > > Thanks, > > Jesse DeFer > > > This message posted from opensolaris.org > _______________________________________________ > zfs-discuss mailing list > zfs-discuss@opensolaris.org > http://mail.opensolaris.org/mailman/listinfo/zfs-discuss _______________________________________________ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss