참고 :이 튜토리얼은 "디버깅 방법"으로 시작했지만 결국 Ubuntu 16.04 LTS 서버 에서 도움이되는 솔루션 이었습니다.
TLDR : landscape-sysinfo
해당 명령을 실행하는 데 시간이 오래 걸리는지 확인하십시오. 새 SSH 로그인시 시스템 정보가 출력됩니다. 이 명령을 모든 시스템에서 사용할 수있는 것은 아니며 landscape-common
패키지가 설치합니다. ( "그러나 더 많은 것이 있습니다 ...")
문제가있는 머신의 다른 포트에서 두 번째 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
하고 strace
( sudo 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
하여 요청에 따라 출력 할 수 있습니다 .