注:これは「デバッグ方法」のチュートリアルとして始まりましたが、Ubuntu 16.04 LTSサーバーで私を助けたソリューションになりました。
TLDR:実行してlandscape-sysinfo、コマンドの終了に時間がかかるかどうかを確認します。新しいSSHログインでのシステム情報の印刷です。このコマンドはすべてのシステムで使用できるわけではなく、landscape-commonパッケージによってインストールされることに注意してください。(「待ってください、もっとあります...」)
問題のあるマシンの別のポートで2番目のsshサーバーを起動し、デバッグモードで実行します。これにより、フォークは行われず、デバッグメッセージが出力されます。
sudo /usr/sbin/sshd -ddd -p 44321
詳細モードで別のマシンからそのサーバーに接続します。
ssh -vvv -p 44321 username@server
クライアントは、スリープを開始する直前に次の行を出力します。
debug1: Entering interactive session.
debug1: pledge: network
グーグルはあまり役に立ちませんが、サーバーログの方が優れています。
debug3: mm_send_keystate: Finished sending state [preauth]
debug1: monitor_read_log: child log fd closed
debug1: PAM: establishing credentials
debug3: PAM: opening session
---- Pauses here ----
debug3: PAM: sshpam_store_conv called with 1 messages
User child is on pid 28051
に変更UsePAM yesするとUsePAM no、この問題は解決したことに気付きました。
UseDNS他の設定とは関係なくUsePAM、システムのこの問題にのみ影響します。
私はなぜ見当がつかない、と私も残していないよUsePAMでno、私は副作用であるかを知らないので、これは私が調査を継続することができます。
したがって、これを答えと考えないでください。しかし、何が悪いのかを知るための最初のステップです。
そこで調査を続け、()で走りsshdました。これにより、次の結果が得られました。stracesudo strace /usr/sbin/sshd -ddd -p 44321
sendto(4, "<87>Nov 20 20:35:21 sshd[2234]: "..., 110, MSG_NOSIGNAL, NULL, 0) = 110
close(5) = 0
stat("/etc/update-motd.d", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0
umask(022) = 02
rt_sigaction(SIGINT, {SIG_IGN, [], SA_RESTORER, 0x7f15dce784b0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigaction(SIGQUIT, {SIG_IGN, [], SA_RESTORER, 0x7f15dce784b0}, {SIG_DFL, [], 0}, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
clone(child_stack=0, flags=CLONE_PARENT_SETTID|SIGCHLD, parent_tidptr=0x7ffde6152d2c) = 2385
wait4(2385, # BLOCKS RIGHT HERE, BEFORE THE REST IS PRINTED OUT # [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 2385
行/etc/update-motd.dは私を疑わしくしました、どうやらプロセスは中にあるものの結果を待っています/etc/update-motd.d
だから私はcd「の研究開発/etc/update-motd.dと走っsudo chmod -x *これは、動的生成するすべてのファイルを実行するためにPAMを抑制するためにMessage Of The Day、パッケージをアップグレードする必要があり、これで問題が解決した場合、システムの負荷が含まれており、。
これは、「エネルギー効率の高い」N3150 CPUに基づいたサーバーであり、24時間年中無休で多くの作業を行う必要があるため、このmotdデータをすべて収集するのは多すぎると思います。
そのフォルダ内のスクリプトを選択的に有効にし、どれがそれほど有害ではないかを確認し始めるかもしれませんが、特別な呼び出しlandscape-sysinfoは非常に遅く、50-landscape-sysinfoそのコマンドを呼び出します。それが最大の遅延の原因だと思います。
ほとんどのファイルを再度有効にした後、50-landscape-sysinfoそれ99-esmが私のトラブルの原因であるという結論に達しました
。50-landscape-sysinfo実行に約5秒、99-esm約3秒かかりました。残りのすべてのファイルは、全体で約2秒です。
どちらも重要50-landscape-sysinfoで99-esmはありません。50-landscape-sysinfo興味深いシステムの統計情報(およびスペースが不足している場合も!)を99-esm出力し、関連するメッセージを出力しますUbuntu Extended Security Maintenance
最後にecho '/usr/bin/landscape-sysinfo' > info.sh && chmod +x info.sh、リクエストでスクリプトを作成し、リクエストに応じてそのプリントアウトを取得できます。