
Infineband(IPoIB)で実行されているNFS v4サーバーには多くの問題があります。負荷が高くなるたびにnfsサーバーがロックされ、問題を解決するにはサーバーを再起動する必要があります。数秒ごとに次のメッセージが表示されます。
Message from syslogd@fruster at Jul 14 12:51:54 ...
kernel:BUG: soft lockup - CPU#6 stuck for 22s! [nfsd:15806]
私はそれをデバッグし、何が起こっているのかを調べようとしたので、すべての帯域幅を使用することがnfsstat -s
何であるかを確認しました。
Server rpc stats:
calls badcalls badclnt badauth xdrcall
241998732 0 0 0 0
Server nfs v4:
null compound
3 0% 242004087 99%
Server nfs v4 operations:
op0-unused op1-unused op2-future access close commit
0 0% 0 0% 0 0% 148697 0% 65006 0% 124611 0%
create delegpurge delegreturn getattr getfh link
3072 0% 0 0% 10373 0% 6028483 2% 120565 0% 0 0%
lock lockt locku lookup lookup_root nverify
0 0% 0 0% 0 0% 52306 0% 0 0% 0 0%
open openattr open_conf open_dgrd putfh putpubfh
90478 0% 0 0% 223 0% 18760 0% 18834351 6% 0 0%
putrootfh read readdir readlink remove rename
65 0% 12579510 4% 4540 0% 5 0% 24848 0% 20232 0%
renew restorefh savefh secinfo setattr setcltid
23413 0% 0 0% 20241 0% 0 0% 1073 0% 66 0%
setcltidconf verify write rellockowner bc_ctl bind_conn
66 0% 0 0% 5716220 2% 0 0% 0 0% 13 0%
exchange_id create_ses destroy_ses free_stateid getdirdeleg getdevinfo
101 0% 159 0% 58 0% 0 0% 0 0% 0 0%
getdevlist layoutcommit layoutget layoutreturn secinfononam sequence
0 0% 0 0% 0 0% 0 0% 0 0% 225439523 83%
set_ssv test_stateid want_deleg destroy_clid reclaim_comp
0 0% 0 0% 0 0% 0 0% 55 0%
ご覧のとおり、「sequence」はNFS帯域幅の83%を使用していますが、「sequence」とは何かわからず、オンラインでは見つかりません。 「nfsstat -s 出力シーケンス」を検索すると、次のような結果が出るためです。 「次の手順を順番に実行してください」と言うページがたくさんあります。
「順番」とは何かを知っている人はいますか? NFSが停止する理由に関する提案がある場合は、ボーナスポイントを提供してください。
ありがとう
答え1
定義は次のとおりです。
RFC 3530 NFS v4:NFS(ネットワークファイルシステム)バージョン4プロトコル
NFS4ERR_BAD_SEQID
ロック要求のシーケンス番号は、次の予想番号でも処理された最後の番号でもありません。
これnfsstat ソース残念ながら、追加情報は公開されていません。
7月15日更新:の可能性バグ 651409 - NFS サーバーが BAD SEQID エラーメッセージを返すここの犯人です。
答え2
NFSv4.1 タスク 53。
サーバーは SEQUENCE 操作を使用して、セッション要求制御と応答キャッシュのセマンティクスを実装します。
ジョブ自体にはエラーや問題が表示されないようです。