Re: [zfs-discuss] lots of zil_clean threads
I wonder if a taskq pool does not suffer from a similar effect observed for the nfsd pool : 6467988 Minimize the working set of nfsd threads Created threads round robin our of taskq loop, doing little work but wake up at least once per 5 minute and so are never reaped. -r Nils Goroll writes: > Hi Neil and all, > > thank you very much for looking into this: > > > So I don't know what's going on. What is the typical call stack for those > > zil_clean() threads? > > I'd say they are all blocking on their respective CVs: > > ff0009066c60 fbc2c0300 0 60 ff01d25e1180 >PC: _resume_from_idle+0xf1TASKQ: zil_clean >stack pointer for thread ff0009066c60: ff0009066b60 >[ ff0009066b60 _resume_from_idle+0xf1() ] > swtch+0x147() > cv_wait+0x61() > taskq_thread+0x10b() > thread_start+8() > > I should add that I have quite a lot of datasets: > > r...@haggis:~# zfs list -r -t filesystem | wc -l >49 > r...@haggis:~# zfs list -r -t volume | wc -l >14 > r...@haggis:~# zfs list -r -t snapshot | wc -l > 6018 > > Nils > ___ > 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
Re: [zfs-discuss] lots of zil_clean threads
I should add that I have quite a lot of datasets: and maybe I should also add that I'm still running an old zpool version in order to keep the ability to boot snv_98: aggis:~$ zpool upgrade This system is currently running ZFS pool version 14. The following pools are out of date, and can be upgraded. After being upgraded, these pools will no longer be accessible by older software versions. VER POOL --- 13 rpool ___ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
Re: [zfs-discuss] lots of zil_clean threads
Hi Neil and all, thank you very much for looking into this: So I don't know what's going on. What is the typical call stack for those zil_clean() threads? I'd say they are all blocking on their respective CVs: ff0009066c60 fbc2c0300 0 60 ff01d25e1180 PC: _resume_from_idle+0xf1TASKQ: zil_clean stack pointer for thread ff0009066c60: ff0009066b60 [ ff0009066b60 _resume_from_idle+0xf1() ] swtch+0x147() cv_wait+0x61() taskq_thread+0x10b() thread_start+8() I should add that I have quite a lot of datasets: r...@haggis:~# zfs list -r -t filesystem | wc -l 49 r...@haggis:~# zfs list -r -t volume | wc -l 14 r...@haggis:~# zfs list -r -t snapshot | wc -l 6018 Nils ___ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss
Re: [zfs-discuss] lots of zil_clean threads
Thinking more about this I'm confused about what you are seeing. The function dsl_pool_zil_clean() will serialise separate calls to zil_clean() within a pool. I don't expect you have >1037 pools on your laptop! So I don't know what's going on. What is the typical call stack for those zil_clean() threads? Neil. On 09/21/09 08:53, Neil Perrin wrote: Nils, A zil_clean() is started for each dataset after every txg. this includes snapshots (which is perhaps a bit inefficient). Still, zil_clean() is fairly lightweight if there's nothing to do (grab a non contended lock; find nothing on a list; drop the lock & exit). Neil. On 09/21/09 08:08, Nils Goroll wrote: Hi All, out of curiosity: Can anyone come up with a good idea about why my snv_111 laptop computer should run more than 1000 zil_clean threads? ff0009a9dc60 fbc2c0300 tq:zil_clean ff0009aa3c60 fbc2c0300 tq:zil_clean ff0009aa9c60 fbc2c0300 tq:zil_clean ff0009aafc60 fbc2c0300 tq:zil_clean ff0009ab5c60 fbc2c0300 tq:zil_clean ff0009abbc60 fbc2c0300 tq:zil_clean ff0009ac1c60 fbc2c0300 tq:zil_clean > ::threadlist!grep zil_clean| wc -l 1037 Thanks, Nils P.S.: Please don't spend too much time on this, for me, this question is really academic - but I'd be grateful for any good answers. ___ 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
Re: [zfs-discuss] lots of zil_clean threads
Nils, A zil_clean() is started for each dataset after every txg. this includes snapshots (which is perhaps a bit inefficient). Still, zil_clean() is fairly lightweight if there's nothing to do (grab a non contended lock; find nothing on a list; drop the lock & exit). Neil. On 09/21/09 08:08, Nils Goroll wrote: Hi All, out of curiosity: Can anyone come up with a good idea about why my snv_111 laptop computer should run more than 1000 zil_clean threads? ff0009a9dc60 fbc2c0300 tq:zil_clean ff0009aa3c60 fbc2c0300 tq:zil_clean ff0009aa9c60 fbc2c0300 tq:zil_clean ff0009aafc60 fbc2c0300 tq:zil_clean ff0009ab5c60 fbc2c0300 tq:zil_clean ff0009abbc60 fbc2c0300 tq:zil_clean ff0009ac1c60 fbc2c0300 tq:zil_clean > ::threadlist!grep zil_clean| wc -l 1037 Thanks, Nils P.S.: Please don't spend too much time on this, for me, this question is really academic - but I'd be grateful for any good answers. ___ 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
[zfs-discuss] lots of zil_clean threads
Hi All, out of curiosity: Can anyone come up with a good idea about why my snv_111 laptop computer should run more than 1000 zil_clean threads? ff0009a9dc60 fbc2c0300 tq:zil_clean ff0009aa3c60 fbc2c0300 tq:zil_clean ff0009aa9c60 fbc2c0300 tq:zil_clean ff0009aafc60 fbc2c0300 tq:zil_clean ff0009ab5c60 fbc2c0300 tq:zil_clean ff0009abbc60 fbc2c0300 tq:zil_clean ff0009ac1c60 fbc2c0300 tq:zil_clean > ::threadlist!grep zil_clean| wc -l 1037 Thanks, Nils P.S.: Please don't spend too much time on this, for me, this question is really academic - but I'd be grateful for any good answers. ___ zfs-discuss mailing list zfs-discuss@opensolaris.org http://mail.opensolaris.org/mailman/listinfo/zfs-discuss