nfsd stucks in 'D' state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi all.

Looking at the archives, this seems a development mailing list, but
since I don't know better place where put this question, I'll let you
know the problem.

I have an old Debian 6.0 machine that served as a NFS server for a HPC
cluster.  Users started to complain that the machines that accessed the
NFS got really slow (/home, for instance, is NFS-mounted).  After some
investigation I realized that all nfsd process are rapidly going to 'D'
state and rarely coming back.  Some investigation led me to the
hypothesis that it could be a bug in Linux kernel (see [1]).  So, I
decided to update the old kernel (2.6.32-3) to a newer one (3.2.60).

It didn't solve.  Some changes of the nfs mount options, like using the
"soft" option, or tweaking wsize and rsize parameters didn't solve as
well.  After that, I tried to increase the number of nfsd's from 16 to
64.  No way.  All of them stuck to 'D' again

is not a throttle problem in disk.  I/O rates don't go beyond 20 MB/s,
according to iostat.  This is an architecture where 22 computers mount
the same directory (/home) and share information there.  Although a
distributed filesystem is recommended for this case (HPC), according to
our experience NFS suffices for this size of cluster.

For some information, I give you here:

1. output of nfsstat.

2. dmesg with some backtraces.

Thank you!



1. output of nfsstat

Server rpc stats:
calls      badcalls   badauth    badclnt    xdrcall
90589      1          1          0          0

Server nfs v3:
null         getattr      setattr      lookup       access       readlink
57        0% 16334    18% 10186    11% 1513      1% 5442      6% 0         0%
read         write        create       mkdir        symlink      mknod
6         0% 42268    46% 268       0% 2         0% 0         0% 0         0%
remove       rmdir        rename       link         readdir      readdirplus
259       0% 0         0% 279       0% 0         0% 0         0% 70        0%
fsstat       fsinfo       pathconf     commit
29        0% 26        0% 13        0% 13697    15%

Client rpc stats:
calls      retrans    authrefrsh
0          0          0



2. dmesg with some backtraces (you realize that there are some other
processes in 'D', like a sync command I executed and didn't return.
Disk problem?

kjournald       D ffff880610e48dc0     0   790      2 0x00000000
 ffff880610e48dc0 0000000000000046 ffff880600000000 ffff880613d01b80
 0000000000013140 ffff88061257ffd8 ffff88061257ffd8 0000000000013140
 ffff880610e48dc0 0000000000013140 0000000000013140 ffff88061257e010
Call Trace:
 [<ffffffff8101485d>] ? read_tsc+0x5/0x16
 [<ffffffff8111ee09>] ? unmap_underlying_metadata+0x4b/0x4b
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff8111ee12>] ? sleep_on_buffer+0x9/0xd
 [<ffffffff8132b8c7>] ? __wait_on_bit+0x3e/0x6f
 [<ffffffff8132b966>] ? out_of_line_wait_on_bit+0x6e/0x77
 [<ffffffff8111ee09>] ? unmap_underlying_metadata+0x4b/0x4b
 [<ffffffff81062fe7>] ? autoremove_wake_function+0x2a/0x2a
 [<ffffffffa02fbb3e>] ? wait_on_buffer+0xe/0x28 [jbd]
 [<ffffffffa02fc22f>] ? journal_commit_transaction+0x597/0xec8 [jbd]
 [<ffffffff81062fbd>] ? wake_up_bit+0x20/0x20
 [<ffffffff81054bcf>] ? lock_timer_base+0x25/0x49
 [<ffffffffa03001eb>] ? kjournald+0xde/0x220 [jbd]
 [<ffffffff81062fbd>] ? wake_up_bit+0x20/0x20
 [<ffffffffa030010d>] ? commit_timeout+0xa/0xa [jbd]
 [<ffffffffa030010d>] ? commit_timeout+0xa/0xa [jbd]
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
nfsd            D ffff880610f5d280     0  1336      2 0x00000000
 ffff880610f5d280 0000000000000046 0000000000000000 ffff880613d06e00
 0000000000013140 ffff880607aa7fd8 ffff880607aa7fd8 0000000000013140
 ffff880610f5d280 0000000000013140 0000000000013140 ffff880607aa6010
Call Trace:
 [<ffffffff8101485d>] ? read_tsc+0x5/0x16
 [<ffffffff810b9fdd>] ? __lock_page+0x63/0x63
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff8119b6f8>] ? radix_tree_gang_lookup_slot+0x85/0xa9
 [<ffffffff810b9fe6>] ? sleep_on_page+0x9/0xd
 [<ffffffff8132b8c7>] ? __wait_on_bit+0x3e/0x6f
 [<ffffffff810ba194>] ? wait_on_page_bit+0x6a/0x70
 [<ffffffff81062fe7>] ? autoremove_wake_function+0x2a/0x2a
 [<ffffffff810c44eb>] ? truncate_inode_pages_range+0x2c6/0x317
 [<ffffffff810c4581>] ? truncate_pagecache+0x36/0x4c
 [<ffffffffa036e199>] ? ext3_setattr+0x271/0x2c6 [ext3]
 [<ffffffff8110e46d>] ? notify_change+0x1c5/0x296
 [<ffffffffa042ec71>] ? nfsd_setattr+0x296/0x2e0 [nfsd]
 [<ffffffffa043417c>] ? nfsd3_proc_setattr+0x64/0x6e [nfsd]
 [<ffffffffa042a2fe>] ? nfsd_dispatch+0xd9/0x1bb [nfsd]
 [<ffffffffa03a6ea2>] ? svc_process+0x422/0x626 [sunrpc]
 [<ffffffffa042a790>] ? nfsd_svc+0x167/0x167 [nfsd]
 [<ffffffffa042a873>] ? nfsd+0xe3/0x127 [nfsd]
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
nfsd            D ffff880610f5e720     0  1340      2 0x00000000
 ffff880610f5e720 0000000000000046 0000000000000000 ffffffff8160d020
 0000000000013140 ffff8806076b7fd8 ffff8806076b7fd8 0000000000013140
 ffff880610f5e720 0000000000013140 0000000000013140 ffff8806076b6010
Call Trace:
 [<ffffffff810b9fdd>] ? __lock_page+0x63/0x63
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff810b9fe6>] ? sleep_on_page+0x9/0xd
 [<ffffffff8132b8c7>] ? __wait_on_bit+0x3e/0x6f
 [<ffffffffa02fb383>] ? do_get_write_access+0x36d/0x3b4 [jbd]
 [<ffffffff810ba194>] ? wait_on_page_bit+0x6a/0x70
 [<ffffffff81062fe7>] ? autoremove_wake_function+0x2a/0x2a
 [<ffffffff810bb4e6>] ? grab_cache_page_write_begin+0x9f/0xb1
 [<ffffffffa036e928>] ? ext3_write_begin+0xae/0x20e [ext3]
 [<ffffffff810b96cf>] ? generic_file_buffered_write+0x121/0x28e
 [<ffffffff810ba975>] ? __generic_file_aio_write+0x243/0x277
 [<ffffffff810ba9a9>] ? __generic_file_aio_write+0x277/0x277
 [<ffffffff810baa08>] ? generic_file_aio_write+0x5f/0xb3
 [<ffffffff810f9d55>] ? do_sync_readv_writev+0xa3/0xde
 [<ffffffffa042caa6>] ? fh_compose+0x33f/0x33f [nfsd]
 [<ffffffffa00735e5>] ? exportfs_decode_fh+0xc7/0x226 [exportfs]
 [<ffffffffa03adfdb>] ? seconds_since_boot+0x11/0x1a [sunrpc]
 [<ffffffff810f9a3b>] ? copy_from_user+0x18/0x30
 [<ffffffff81165106>] ? security_file_permission+0x18/0x2d
 [<ffffffff810fa3b1>] ? do_readv_writev+0xaf/0x125
 [<ffffffff8113c9a4>] ? dqget+0x2c0/0x31b
 [<ffffffff8113cf00>] ? dquot_initialize+0x6/0xd
 [<ffffffff8113ced3>] ? __dquot_initialize+0x145/0x16c
 [<ffffffff8113beb7>] ? dqput+0x3b/0x1b7
 [<ffffffffa042de88>] ? nfsd_vfs_write+0xc9/0x2b5 [nfsd]
 [<ffffffffa042e38b>] ? nfsd_open+0xfd/0x14d [nfsd]
 [<ffffffffa042e6f3>] ? nfsd_write+0xbb/0xdc [nfsd]
 [<ffffffffa0433e72>] ? nfsd3_proc_write+0xcf/0xea [nfsd]
 [<ffffffffa042a2fe>] ? nfsd_dispatch+0xd9/0x1bb [nfsd]
 [<ffffffffa03a6ea2>] ? svc_process+0x422/0x626 [sunrpc]
 [<ffffffffa042a790>] ? nfsd_svc+0x167/0x167 [nfsd]
 [<ffffffffa042a873>] ? nfsd+0xe3/0x127 [nfsd]
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
nfsd            D ffff880610e4d280     0  1346      2 0x00000000
 ffff880610e4d280 0000000000000046 0000000000000000 ffff880613d06e00
 0000000000013140 ffff880606ce9fd8 ffff880606ce9fd8 0000000000013140
 ffff880610e4d280 0000000000013140 0000000000013140 ffff880606ce8010
Call Trace:
 [<ffffffff810b9fdd>] ? __lock_page+0x63/0x63
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff810b9fe6>] ? sleep_on_page+0x9/0xd
 [<ffffffff8132b8c7>] ? __wait_on_bit+0x3e/0x6f
 [<ffffffffa02fb383>] ? do_get_write_access+0x36d/0x3b4 [jbd]
 [<ffffffff810ba194>] ? wait_on_page_bit+0x6a/0x70
 [<ffffffff81062fe7>] ? autoremove_wake_function+0x2a/0x2a
 [<ffffffff810bb4e6>] ? grab_cache_page_write_begin+0x9f/0xb1
 [<ffffffffa036e928>] ? ext3_write_begin+0xae/0x20e [ext3]
 [<ffffffff810b96cf>] ? generic_file_buffered_write+0x121/0x28e
 [<ffffffff810ba975>] ? __generic_file_aio_write+0x243/0x277
 [<ffffffff810ba9a9>] ? __generic_file_aio_write+0x277/0x277
 [<ffffffff810baa08>] ? generic_file_aio_write+0x5f/0xb3
 [<ffffffff810f9d55>] ? do_sync_readv_writev+0xa3/0xde
 [<ffffffffa042caa6>] ? fh_compose+0x33f/0x33f [nfsd]
 [<ffffffffa00735e5>] ? exportfs_decode_fh+0xc7/0x226 [exportfs]
 [<ffffffffa03adfdb>] ? seconds_since_boot+0x11/0x1a [sunrpc]
 [<ffffffff810f9a3b>] ? copy_from_user+0x18/0x30
 [<ffffffff81165106>] ? security_file_permission+0x18/0x2d
 [<ffffffff810fa3b1>] ? do_readv_writev+0xaf/0x125
 [<ffffffff8113c9a4>] ? dqget+0x2c0/0x31b
 [<ffffffff8113cf00>] ? dquot_initialize+0x6/0xd
 [<ffffffff8113ced3>] ? __dquot_initialize+0x145/0x16c
 [<ffffffff8113beb7>] ? dqput+0x3b/0x1b7
 [<ffffffffa042de88>] ? nfsd_vfs_write+0xc9/0x2b5 [nfsd]
 [<ffffffffa042e38b>] ? nfsd_open+0xfd/0x14d [nfsd]
 [<ffffffffa042e6f3>] ? nfsd_write+0xbb/0xdc [nfsd]
 [<ffffffffa0433e72>] ? nfsd3_proc_write+0xcf/0xea [nfsd]
 [<ffffffffa042a2fe>] ? nfsd_dispatch+0xd9/0x1bb [nfsd]
 [<ffffffffa03a6ea2>] ? svc_process+0x422/0x626 [sunrpc]
 [<ffffffffa042a790>] ? nfsd_svc+0x167/0x167 [nfsd]
 [<ffffffffa042a873>] ? nfsd+0xe3/0x127 [nfsd]
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
sync            D ffff880610a11b80     0  6556   6486 0x00000004
 ffff880610a11b80 0000000000000086 0000000000000000 ffff880613d00000
 0000000000013140 ffff8805f8515fd8 ffff8805f8515fd8 0000000000013140
 ffff880610a11b80 0000000000013140 0000000000013140 ffff8805f8514010
Call Trace:
 [<ffffffff8132b693>] ? schedule_timeout+0x2d/0xd7
 [<ffffffff810f126b>] ? virt_to_head_page+0x9/0x2c
 [<ffffffff810f3712>] ? kmem_cache_free+0x12/0x9e
 [<ffffffff8132b2d9>] ? wait_for_common+0xd1/0x14e
 [<ffffffff81045664>] ? try_to_wake_up+0x191/0x191
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111923d>] ? writeback_inodes_sb_nr+0x7b/0x81
 [<ffffffff8111c8ef>] ? __sync_filesystem+0x53/0x79
 [<ffffffff810fbf1e>] ? iterate_supers+0x5e/0xab
 [<ffffffff8111c956>] ? sys_sync+0x2d/0x58
 [<ffffffff8132d0d2>] ? system_call_fastpath+0x16/0x1b
sync            D ffff880610a11b80     0  6556   6486 0x00000004
 ffff880610a11b80 0000000000000086 0000000000000000 ffff880613d00000
 0000000000013140 ffff8805f8515fd8 ffff8805f8515fd8 0000000000013140
 ffff880610a11b80 0000000000013140 0000000000013140 ffff8805f8514010
Call Trace:
 [<ffffffff8132b693>] ? schedule_timeout+0x2d/0xd7
 [<ffffffff810f126b>] ? virt_to_head_page+0x9/0x2c
 [<ffffffff810f3712>] ? kmem_cache_free+0x12/0x9e
 [<ffffffff8132b2d9>] ? wait_for_common+0xd1/0x14e
 [<ffffffff81045664>] ? try_to_wake_up+0x191/0x191
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111923d>] ? writeback_inodes_sb_nr+0x7b/0x81
 [<ffffffff8111c8ef>] ? __sync_filesystem+0x53/0x79
 [<ffffffff810fbf1e>] ? iterate_supers+0x5e/0xab
 [<ffffffff8111c956>] ? sys_sync+0x2d/0x58
 [<ffffffff8132d0d2>] ? system_call_fastpath+0x16/0x1b
sync            D ffff880610a11b80     0  6556   6486 0x00000004
 ffff880610a11b80 0000000000000086 0000000000000000 ffff880613d00000
 0000000000013140 ffff8805f8515fd8 ffff8805f8515fd8 0000000000013140
 ffff880610a11b80 0000000000013140 0000000000013140 ffff8805f8514010
Call Trace:
 [<ffffffff8132b693>] ? schedule_timeout+0x2d/0xd7
 [<ffffffff810f126b>] ? virt_to_head_page+0x9/0x2c
 [<ffffffff810f3712>] ? kmem_cache_free+0x12/0x9e
 [<ffffffff8132b2d9>] ? wait_for_common+0xd1/0x14e
 [<ffffffff81045664>] ? try_to_wake_up+0x191/0x191
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111923d>] ? writeback_inodes_sb_nr+0x7b/0x81
 [<ffffffff8111c8ef>] ? __sync_filesystem+0x53/0x79
 [<ffffffff810fbf1e>] ? iterate_supers+0x5e/0xab
 [<ffffffff8111c956>] ? sys_sync+0x2d/0x58
 [<ffffffff8132d0d2>] ? system_call_fastpath+0x16/0x1b
kjournald       D ffff880610e48dc0     0   790      2 0x00000000
 ffff880610e48dc0 0000000000000046 ffff880600000000 ffff880613d05280
 0000000000013140 ffff88061257ffd8 ffff88061257ffd8 0000000000013140
 ffff880610e48dc0 0000000000013140 0000000000013140 ffff88061257e010
Call Trace:
 [<ffffffff8101485d>] ? read_tsc+0x5/0x16
 [<ffffffff8111ee09>] ? unmap_underlying_metadata+0x4b/0x4b
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff8111ee12>] ? sleep_on_buffer+0x9/0xd
 [<ffffffff8132b8c7>] ? __wait_on_bit+0x3e/0x6f
 [<ffffffff8132b966>] ? out_of_line_wait_on_bit+0x6e/0x77
 [<ffffffff8111ee09>] ? unmap_underlying_metadata+0x4b/0x4b
 [<ffffffff81062fe7>] ? autoremove_wake_function+0x2a/0x2a
 [<ffffffffa02fbb3e>] ? wait_on_buffer+0xe/0x28 [jbd]
 [<ffffffffa02fc22f>] ? journal_commit_transaction+0x597/0xec8 [jbd]
 [<ffffffff81062fbd>] ? wake_up_bit+0x20/0x20
 [<ffffffff81054bcf>] ? lock_timer_base+0x25/0x49
 [<ffffffffa03001eb>] ? kjournald+0xde/0x220 [jbd]
 [<ffffffff81062fbd>] ? wake_up_bit+0x20/0x20
 [<ffffffffa030010d>] ? commit_timeout+0xa/0xa [jbd]
 [<ffffffffa030010d>] ? commit_timeout+0xa/0xa [jbd]
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
flush-8:16      D ffff8806106e2940     0  1009      2 0x00000000
 ffff8806106e2940 0000000000000046 0000000000000000 ffff880613d01b80
 0000000000013140 ffff88061196bfd8 ffff88061196bfd8 0000000000013140
 ffff8806106e2940 0000000000013140 0000000000013140 ffff88061196a010
Call Trace:
 [<ffffffff8132b4cc>] ? io_schedule+0x84/0xc3
 [<ffffffff81188985>] ? get_request_wait+0x104/0x193
 [<ffffffff81062fbd>] ? wake_up_bit+0x20/0x20
 [<ffffffff81188c78>] ? blk_queue_bio+0x17a/0x27a
 [<ffffffff8111ef7d>] ? T.1002+0x17/0x17
 [<ffffffff81188300>] ? generic_make_request+0x8e/0xcd
 [<ffffffff81188418>] ? submit_bio+0xd9/0xf7
 [<ffffffff8111ef7d>] ? T.1002+0x17/0x17
 [<ffffffff8112153b>] ? bio_alloc_bioset+0x44/0xb5
 [<ffffffff8111dbd0>] ? submit_bh+0xe5/0x105
 [<ffffffff81120267>] ? __block_write_full_page+0x1dd/0x2b5
 [<ffffffff810c0cc5>] ? __writepage+0xa/0x21
 [<ffffffff810c1e27>] ? write_cache_pages+0x226/0x31e
 [<ffffffff810c0cbb>] ? set_page_dirty+0x61/0x61
 [<ffffffff810c1f5d>] ? generic_writepages+0x3e/0x55
 [<ffffffff81118a4f>] ? writeback_single_inode+0x17f/0x362
 [<ffffffff81118efe>] ? writeback_sb_inodes+0x169/0x1ff
 [<ffffffff81119001>] ? __writeback_inodes_wb+0x6d/0xab
 [<ffffffff81119720>] ? wb_writeback+0x128/0x222
 [<ffffffff810c149a>] ? bdi_dirty_limit+0x27/0x81
 [<ffffffff8111989b>] ? wb_do_writeback+0x81/0x1dd
 [<ffffffff8105508b>] ? del_timer_sync+0x34/0x3e
 [<ffffffff81119aba>] ? bdi_writeback_thread+0xc3/0x201
 [<ffffffff811199f7>] ? wb_do_writeback+0x1dd/0x1dd
 [<ffffffff811199f7>] ? wb_do_writeback+0x1dd/0x1dd
 [<ffffffff81062b71>] ? kthread+0x7a/0x82
 [<ffffffff8132f234>] ? kernel_thread_helper+0x4/0x10
 [<ffffffff81062af7>] ? kthread_worker_fn+0x147/0x147
 [<ffffffff8132f230>] ? gs_change+0x13/0x13
sync            D ffff880610a11b80     0  6556   6486 0x00000004
 ffff880610a11b80 0000000000000086 0000000000000000 ffff880613d00000
 0000000000013140 ffff8805f8515fd8 ffff8805f8515fd8 0000000000013140
 ffff880610a11b80 0000000000013140 0000000000013140 ffff8805f8514010
Call Trace:
 [<ffffffff8132b693>] ? schedule_timeout+0x2d/0xd7
 [<ffffffff810f126b>] ? virt_to_head_page+0x9/0x2c
 [<ffffffff810f3712>] ? kmem_cache_free+0x12/0x9e
 [<ffffffff8132b2d9>] ? wait_for_common+0xd1/0x14e
 [<ffffffff81045664>] ? try_to_wake_up+0x191/0x191
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111c915>] ? __sync_filesystem+0x79/0x79
 [<ffffffff8111923d>] ? writeback_inodes_sb_nr+0x7b/0x81
 [<ffffffff8111c8ef>] ? __sync_filesystem+0x53/0x79
 [<ffffffff810fbf1e>] ? iterate_supers+0x5e/0xab
 [<ffffffff8111c956>] ? sys_sync+0x2d/0x58
 [<ffffffff8132d0d2>] ? system_call_fastpath+0x16/0x1b
nfsd: peername failed (err 107)!
nfsd: last server has exited, flushing export cache
svc: failed to register lockdv1 RPC service (errno 97).


References:

[1] http://administratosphere.wordpress.com/2011/05/13/linux-kernel-sync-bug/

--
Silas Silva

-- 
Silas Silva
--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux