Catatan: Ini dimulai sebagai "Cara debug", tutorial, tetapi akhirnya menjadi solusi yang membantu saya di server Ubuntu 16.04 LTS.
TLDR : Jalankan landscape-sysinfodan periksa apakah perintah itu membutuhkan waktu lama untuk selesai; itu adalah cetakan informasi sistem pada login SSH baru. Perhatikan bahwa perintah ini tidak tersedia di semua sistem, landscape-commonpaket menginstalnya. ("Tapi tunggu, masih ada lagi ...")
Mulai server ssh kedua pada port lain pada mesin yang memiliki masalah, lakukan dalam mode debug, yang tidak akan membuatnya bercabang dan akan mencetak pesan debug:
sudo /usr/sbin/sshd -ddd -p 44321
terhubung ke server itu dari komputer lain dalam mode verbose:
ssh -vvv -p 44321 username@server
Klien saya menampilkan baris berikut tepat sebelum mulai tidur:
debug1: Entering interactive session.
debug1: pledge: network
Googling yang tidak terlalu membantu, tetapi log server lebih baik:
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
Saya menyadari bahwa ketika saya mengubah UsePAM yeske UsePAM nokemudian masalah ini diselesaikan.
Tidak terkait dengan UseDNSatau pengaturan lainnya, hanya UsePAMmemengaruhi masalah ini di sistem saya.
Saya tidak tahu mengapa, dan aku juga tidak meninggalkan UsePAMdi no, karena saya tidak tahu mana efek samping, tapi ini membuat saya terus menyelidiki.
Jadi tolong jangan menganggap ini sebagai jawaban, tetapi langkah pertama untuk mulai mencari tahu apa yang salah.
Jadi saya terus menyelidiki, dan berlari sshddengan strace( sudo strace /usr/sbin/sshd -ddd -p 44321). Ini menghasilkan yang berikut:
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
Garis itu /etc/update-motd.dmembuatku curiga, ternyata prosesnya menunggu hasil dari barang-barang yang ada di dalamnya/etc/update-motd.d
Jadi saya cdmasuk /etc/update-motd.ddan menjalankan sudo chmod -x *perintah untuk menghambat PAM untuk menjalankan semua file yang menghasilkan dinamika ini Message Of The Day, yang mencakup beban sistem dan jika paket perlu ditingkatkan, dan ini menyelesaikan masalah.
Ini adalah server berbasis pada CPU N3150 "hemat energi" yang memiliki banyak pekerjaan yang harus dilakukan 24/7, jadi saya pikir mengumpulkan semua data motd ini terlalu banyak untuk itu.
Saya mungkin mulai mengaktifkan skrip di folder itu secara selektif, untuk melihat mana yang kurang berbahaya, tetapi panggilan khusus landscape-sysinfosangat lambat, dan 50-landscape-sysinfomemang memanggil perintah itu. Saya pikir itu yang menyebabkan keterlambatan terbesar.
Setelah mengaktifkan kembali sebagian besar file saya sampai pada kesimpulan bahwa
50-landscape-sysinfodan 99-esmmerupakan penyebab masalah saya. 50-landscape-sysinfobutuh sekitar 5 detik untuk dieksekusi dan 99-esmsekitar 3 detik. Semua file yang tersisa sekitar 2 detik sama sekali.
Tidak penting 50-landscape-sysinfodan 99-esmsangat penting. 50-landscape-sysinfomencetak statistik sistem yang menarik (dan juga jika Anda kekurangan ruang!), dan 99-esmmencetak pesan yang berkaitan denganUbuntu Extended Security Maintenance
Akhirnya, Anda dapat membuat skrip dengan echo '/usr/bin/landscape-sysinfo' > info.sh && chmod +x info.shdan mendapatkan hasil cetak atas permintaan.