충돌하는 Linux 머신 디버깅

충돌하는 Linux 머신 디버깅

저는 15개의 동일한 Linux RH 4.7 64비트 서버를 보유하고 있습니다. 클러스터된 데이터베이스를 실행합니다(클러스터는 애플리케이션 수준). 가끔(매달 정도) 임의의 상자(동일하지는 않지만)가 정지됩니다.

상자에 핑을 보낼 수 있고 핑이 제대로 작동합니다. 상자에서 ssh를 사용하려고 하면 다음과 같은 결과가 나타납니다.

ssh_exchange_identification: Connection closed by remote host

SSH가 올바르게 설정되었습니다.

서버룸에 가서 콘솔에 직접 로그인하려고 하면 Alt+ 를 사용하여 콘솔을 전환 할 Fn수 있고 사용자 이름을 입력하면 문자가 표시되지만 을 누른 후에는 Enter아무 일도 일어나지 않습니다. 한번은 8시간을 기다려도 아무런 변화가 없었습니다.

모든 것을 원격 호스트에 기록하도록 syslog를 설정했지만 이 로그에는 아무것도 없습니다. 컴퓨터를 다시 시작하면 제대로 작동합니다. 하드웨어 테스트를 실행했습니다. 모든 것이 잘 작동하지만 로그에는 아무 것도 없습니다. 기계는 또한 NAGIOS를 통해 모니터링되었으며 동결되기 전에 비정상적인 부하나 활동이 없었습니다.

아이디어가 부족합니다. 그 밖에 무엇을 하거나 확인할 수 있나요?

답변1

커널이 어떤 식으로든 패닉 상태에 빠져 sshd가 서버 키를 보내지 못하게 하는 것 같습니다. 커널이 고정되어 네트워크 스택이 계속 실행되지만 vfs 계층을 사용할 수 없게 될 수 있습니다.

RHEL4 시스템에서 비슷한 문제에 직면했을 때netdump 및 netconsole 서비스, 크래시 덤프 및 커널 패닉 정보를 캡처하는 전용 netdump 및 syslog 서버도 있습니다. 또한 kernel.panic sysctl을 10으로 설정했습니다. 이렇게 하면 시스템 패닉이 발생할 때 해당 시스템에 커널 추적 및 메모리 복사본이 생기고 "crash" 유틸리티를 사용하여 이를 분석할 수 있습니다.

물론 호스트용 직렬 콘솔을 설정하면 콘솔 출력을 보고 마법의 sysrq 키를 누를 수도 있다는 이점이 있습니다. 또한 네트워크를 설정할 의향이 있고 이를 지원할 하드웨어가 있는 경우 IPMI를 사용하여 원격으로 전원을 끄고 켜고 재부팅하고 하드웨어를 쿼리할 수 있습니다.

(RHEL5에는 크래시 덤프가 로컬에 저장된다는 점을 제외하면 kexec/kdump와 유사한 기능이 있다는 점을 언급할 가치가 있습니다)

답변2

아마 메모리가 부족할 것 같아요. 시스템은 일부 정보를 어디서 얻을 수 있는지 알아내려고 시도하면서 서서히 정지되고 있습니다. 너무 빨리 일어나서 감시가 포착하지 못할 수도 있습니다. 원격으로 메모리 사용량을 기록하는 등 모니터링을 강화하겠습니다. 또한 OOM 메시지에 대한 로그를 확인하세요.

(최상위로 실행하기 위해 일부 SSH 창을 열고 싶을 수도 있습니다.)

답변3

나에게는 시스템에 리소스가 부족하여 SSH 서버 측에 필요한 프로세스를 할당할 수 없는 것처럼 들립니다.

실제 병목 현상은 프로세스 부족 또는 메모리 부족 등 다양할 수 있습니다. 확실히 알 수 있는 유일한 방법은 로그와 콘솔을 살펴보고 거기에 문제가 있는지 확인하는 것입니다. 다음에 발생할 수 있는 상황에 대비하기 위해 미리 시작된 SSH 작업 시나리오(머신당 하나)를 설정할 수 있습니다.

의 경우진짜좋지 않다면 추가 프로세스를 시작하지 않고도 더 많은 것을 조사할 수 있도록 더 많은 내장 명령을 사용하여 다른 셸을 시작하는 것이 불가능할 수 있으므로 고려할 수 있습니다. 또한 "tail -f /var/log/*"도 매우 유용할 수 있습니다.

행운을 빌어요.

답변4

이와 같은 일이 발생하는 것을 본 유일한 경우는 KVM 스위치와 키보드 단축키(예: Alt+n)를 사용하여 서버 간을 전환할 때였습니다. 이는 매번 발생하는 것은 아니며 서버 전환의 영향을 받으므로 즉시 눈에 띄지는 않습니다. KVM 스위치 자체의 물리적 버튼을 사용하여 서버 간을 전환하는 경우 잠김이 발생하지 않습니다. 단축키를 자주 사용하는 경우 서버에서 새 로그인을 허용하지 않는 경우가 있습니다. 기존 SSH 세션은 영향을 받지 않습니다.

관련 정보