Hello Robert,

Monday, July 31, 2006, 12:48:30 AM, you wrote:

RM> Hello ZFS,

RM>    System was rebooted and after reboot server again

RM> System is snv_39, SPARC, T2000

RM> bash-3.00# ptree
RM> 7     /lib/svc/bin/svc.startd -s
RM>   163   /sbin/sh /lib/svc/method/fs-local
RM>     254   /usr/sbin/zfs mount -a
RM> [...]

RM> bash-3.00# zfs list|wc -l
RM>       46

RM> Using df I can see most file systems are already mounted.

RM>       
>> ::ps!grep zfs
RM> R    254    163      7      7      0 0x4a004000 00000600219e1800 zfs
>> 00000600219e1800::walk thread|::findstack -v
RM> stack pointer for thread 300013026a0: 2a10069ebb1
RM> [ 000002a10069ebb1 cv_wait+0x40() ]
RM>   000002a10069ec61 txg_wait_synced+0x54(3000052f0d0, 2f2216d,
RM> 3000107fb90, 3000052f110, 3000052f112, 3000052f0c8)
RM>   000002a10069ed11 zil_replay+0xbc(60022609c08, 600226a1840,
RM> 600226a1870, 700d13d8, 7ba2d000, 60006821200)
RM>   000002a10069ee01 zfs_domount+0x1f0(7ba35000, 700d1000, 60021a8bae0, 1, 0, 
0)
RM>   000002a10069eed1 zfs_mount+0x160(600225f6080, 1868800, 2a10069f9d8, 
60021a8bae0, 2f, 0)
RM>   000002a10069efb1 domount+0x9b0(2a10069f8b0, 1, 600225f6080, 0, 0, 0)
RM>   000002a10069f121 mount+0x110(600013fbcf8, 2a10069fad8, 0, 0, ff38e40c, 
100)
RM>   000002a10069f221 syscall_ap+0x44(2a0, ffbfeca0, 1118bf4, 600013fbc40, 15, 
0)
RM>   000002a10069f2e1 syscall_trap32+0xcc(52b3c8, ffbfeca0, 100, ff38e40c, 0, 
0)
>>



RM> # iostat -xnz 1
RM>                     extended device statistics
RM>     r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
RM>     3.0  513.0  192.0 2822.1  0.0  2.1    0.0    4.0   0  95
RM> c4t600C0FF00000000009258F3E4C4C5601d0
RM>                     extended device statistics
RM>     r/s    w/s   kr/s   kw/s wait actv wsvc_t asvc_t  %w  %b device
RM>     7.0  598.1  388.6 1832.9  0.0  2.0    0.0    3.4   0  93
RM> c4t600C0FF00000000009258F3E4C4C5601d0
RM> ^C
RM> bash-3.00#

RM> However for many seconds no IOs at all are issued.

RM> # mpstat 1
RM> [...]

RM> CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
RM>   0    0   0   74   209  109    0    0    0    0    0     0    0  1   0  99
RM>   1    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>   2    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>   3    0   0    0     1    0    0    0    0    0    0     0    0 100   0   0
RM>   4    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>   5    0   0    0     6    1    8    0    0    0    0     0    0  0   0 100
RM>   6    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>   7    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>   8    3   0    1     7    0   12    0    0    2    0   245    1  1   0  98
RM>   9    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  10    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  11    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  12    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  13    0   0    0     6    0   10    0    0    0    0     0    0  0   0 100
RM>  14    0   0    0     3    0    2    1    0    0    0   188    0  1   0  99
RM>  15    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  16    0   0    0     8    1   12    0    0    0    0     0    0  0   0 100
RM>  17    0   0    0     7    0   12    0    0    0    0     0    0  0   0 100
RM>  18    0   0    0    23    0   43    0    0    1    0     0    0  0   0 100
RM>  19    0   0    0     9    0   16    0    0    0    0     0    0  0   0 100
RM>  20    0   0    0     8    0   14    0    0    0    0     0    0  0   0 100
RM>  21    0   0    0     7    2    8    0    1    0    0     1    0  1   0  99
RM>  22    0   0   17    38   34    7    0    1    1    0     5    0  0   0 100
RM>  23    0   0    0     7    0   12    0    0    0    0     0    0  0   0 100
RM>  24    0   0    0     4    0    6    0    1    0    0     0    0  0   0 100
RM>  25    0   0    1     5    0    8    0    1    0    0     0    0  0   0 100
RM>  26    0   0    0     2    0    2    0    0    0    0     0    0  0   0 100
RM>  27    0   0    0     2    0    2    0    0    0    0     0    0  0   0 100
RM>  28    0   0    0     2    0    2    0    0    1    0     0    0  0   0 100
RM>  29    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  30    0   0    0     1    0    0    0    0    0    0     0    0  0   0 100
RM>  31    0   0    0     6    0    8    0    0    0    0     0    0  0   0 100
RM> ^C
RM> bash-3.00#

RM> # dtrace -n fbt:::entry'{self->t=timestamp;}' -n
RM> fbt:::return'/self->t/[EMAIL PROTECTED](timestamp-self->t);self->t=0;}' -n 
tick-5s'{printa(@);exit(0);}'
RM> [...]
RM>   syscall_mstate                                             12636328
RM>   callout_schedule_1                                         14428108
RM>   hwblkclr                                                   16656308
RM>   avl_rotation                                               17196252
RM>   page_pptonum                                               19457456
RM>   sfmmu_mlist_enter                                          20078508
RM>   sfmmu_mlist_exit                                           20804176
RM>   page_numtomemseg_nolock                                    23377972
RM>   avl_insert                                                 23727512
RM>   avl_insert_here                                            25281752
RM>   sfmmu_mlspl_enter                                          32277524
RM>   kmem_cache_alloc                                           38497240
RM>   xc_serv                                                    94880184
RM>   disp_getwork                                              118366960
RM>   disp_anywork                                              191004096
RM>   space_map_seg_compare                                     573117700
RM>   resume                                                   7059674296

RM> #

RM> bash-3.00# dtrace -n
RM> fbt::space_map_seg_compare:entry'[EMAIL PROTECTED]()]=count();}'
RM> dtrace: description 'fbt::space_map_seg_compare:entry' matched 1 probe
RM> ^C


RM>               genunix`avl_find+0x38
RM>               zfs`space_map_add+0x12c
RM>               zfs`space_map_load+0x214
RM>               zfs`metaslab_activate+0x3c
RM>               zfs`metaslab_group_alloc+0x1b0
RM>               zfs`metaslab_alloc_dva+0x10c
RM>               zfs`metaslab_alloc+0x2c
RM>               zfs`zio_dva_allocate+0x50
RM>               zfs`zio_write_compress+0x1e4
RM>               zfs`arc_write+0xbc
RM>               zfs`dbuf_sync+0x6b0
RM>               zfs`dnode_sync+0x300
RM>               zfs`dmu_objset_sync_dnodes+0x68
RM>               zfs`dmu_objset_sync+0x50
RM>               zfs`dsl_dataset_sync+0xc
RM>               zfs`dsl_pool_sync+0x60
RM>               zfs`spa_sync+0xe0
RM>               zfs`txg_sync_thread+0x130
RM>               unix`thread_start+0x4
RM>            316769

RM>               genunix`avl_find+0x38
RM>               zfs`space_map_remove+0x98
RM>               zfs`space_map_load+0x214
RM>               zfs`metaslab_activate+0x3c
RM>               zfs`metaslab_group_alloc+0x1b0
RM>               zfs`metaslab_alloc_dva+0x10c
RM>               zfs`metaslab_alloc+0x2c
RM>               zfs`zio_dva_allocate+0x50
RM>               zfs`zio_write_compress+0x1e4
RM>               zfs`arc_write+0xbc
RM>               zfs`dbuf_sync+0x6b0
RM>               zfs`dnode_sync+0x300
RM>               zfs`dmu_objset_sync_dnodes+0x68
RM>               zfs`dmu_objset_sync+0x50
RM>               zfs`dsl_dataset_sync+0xc
RM>               zfs`dsl_pool_sync+0x60
RM>               zfs`spa_sync+0xe0
RM>               zfs`txg_sync_thread+0x130
RM>               unix`thread_start+0x4
RM>            404210
RM> bash-3.00#

RM> Above was running for 3-4seconds



RM> I can see some progress - I mean it mounts another filesystem in every
RM> 3-10 minutes.

RM> However overall it could take even over an hour to boot server before
RM> zfs mount -a mounts actually all file systems. Also with default
RM> Solaris configs during this stage you can't login either from console
RM> or ssh and no messages are issued. That is bad also as you don't know
RM> what is going on. We had to reboot again, boot to single user, run
RM> sshd, login via ssh and let boot process to proceed in order to see
RM> why server won't boot.

RM> Using zpool status all pools are ok and no errors at all are reported.


RM> Summary:

RM>   1. zfs mount -a shouldn't "sleep" 1h!
RM>   2. one virtual CPU core of T2000 1GH is consumed for
RM>      most of the time during zfs mount -a - why is it so CPU
RM>      intensive? On that server CPU became limiting in that way
RM>      that usually no IOs were issued to disks during mount.
RM>      When it happened on faster CPU disks were doing 100MB/s,
RM>      but still it took 10-20 minutes to zfs mount disks.
RM>   3. I thought zfs mount problem so it exits earlier was already
RM>      addressed. So this is completely new or still something wrong is
RM>      going on. I'm thinking about
RM> http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6377670
RM>   4. Would be better if zfs mount -a would actually do it in parallel
RM>      as it looks like it mounts in serial fashion right now

RM> Above behavior is really BAD and it makes ZFS looks like fsck is
RM> actually build-in - I know it isn't.
RM>   



Any ideas?





-- 
Best regards,
 Robert                            mailto:[EMAIL PROTECTED]
                                       http://milek.blogspot.com

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to