무작위로 자동 응답을 중지하는 EC2 서버를 디버깅하는 방법

무작위로 자동 응답을 중지하는 EC2 서버를 디버깅하는 방법

Amazon Linux AMI 2018.03(4.14.59-64.43.amzn1.x86_64)에서 t2.micro 인스턴스를 실행하고 있습니다. Apache/2.4.33을 사용하여 PHP 웹 사이트를 호스팅하고 RDS MySQL 데이터베이스에 연결합니다.

때때로 서버가 완전히 "사라집니다". 웹 사이트를 표시하거나 FTP에 연결하거나 퍼티를 사용하여 SSH에 연결하려고 하면 모두 시간 초과가 발생합니다. 그리고 저절로 돌아오지 않습니다. AWS 콘솔을 통해 수동으로 서버를 종료했다가 다시 시작해야 합니다. 그러면 모든 것이 정상으로 돌아옵니다. (흥미롭게도 "reboot" 명령은 아무 작업도 수행하지 않으며 서버에서 무시되는 것 같습니다. 서버를 종료하고 다시 시작하는 것만 작동합니다.)

문제는 찾을 수 있는 모든 로그 파일을 확인했는데 서버가 응답을 멈출 때쯤에는 아무것도 없는 것 같아서 문제를 해결하는 방법을 모른다는 것입니다. Cloudwatch 지표를 확인해보면 서버가 응답하지 않는 동안 CPU 및 네트워크 사용량도 정상적인 것으로 보입니다.

이는 메모리가 많은 특정 PHP 스크립트를 여러 번 실행할 때 발생하는 것으로 보이므로(그러나 임의로 이 스크립트를 문제 없이 실행할 수도 있음) RAM이 가득 차는 것과 관련이 있을 수 있다고 의심됩니다. 하지만 시스템이 메모리를 확보하기 위해 무언가를 닫고 있다면 로그에 표시되지 않을까요?

이런 상황에서 디버깅을 어떻게 진행할까요?

감사해요

마지막 발생에 대한 메시지 로그의 유일한 내용은 다음과 같습니다.

Sep  6 15:11:34 compta dhclient[2266]: PRC: Renewing lease on eth0.
Sep  6 15:11:34 compta dhclient[2266]: XMT: Renew on eth0, interval 10970ms.
Sep  6 15:11:34 compta dhclient[2266]: RCV: Reply message on eth0 from ****::***:****:****:****.
Sep  6 15:11:34 compta ec2net: [get_meta] Trying to get http://***.***.***.***/latest/meta-data/network/interfaces/macs/**:**:**:**:**:**/local-ipv4s
Sep  6 15:11:34 compta ec2net: [rewrite_aliases] Rewriting aliases of eth0
Sep  6 15:11:34 compta ec2net: [get_meta] Trying to get http://***.***.***.***/latest/meta-data/network/interfaces/macs/**:**:**:**:**:**/subnet-ipv4-cidr-block
Sep  6 15:22:13 compta kernel: imklog 5.8.10, log source = /proc/kmsg started.
Sep  6 15:22:13 compta rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="2356" x-info="http://www.rsyslog.com"] start
Sep  6 15:22:13 compta kernel: [    0.000000] Linux version 4.14.59-64.43.amzn1.x86_64 (mockbuild@gobi-build-64010) (gcc version 7.2.1 20170915 (Red Hat 7.2.1-2) (GCC)) #1 SMP Thu Aug 2 21:29:33 UTC 2018
Sep  6 15:22:13 compta kernel: [    0.000000] Command line: root=LABEL=/ console=tty1 console=ttyS0 selinux=0 LANG=en_US.UTF-8 KEYTABLE=us
Sep  6 15:22:13 compta kernel: [    0.000000] x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'

15시 22분은 서버를 다시 시작하는 시간입니다.

방금 깨달은 점: eth0 임대는 일반적으로 1분마다 갱신되지만 서버가 응답을 중지하면 중지됩니다.

답변1

이전 의견에 따라 올바른 것으로 표시할 수 있도록 답변을 드리겠습니다. 이는 사람들이 도움을 주려고 들어오지 않는다는 것을 의미합니다.

RAM 문제인지 테스트하기 위해 스왑 공간을 설정하는 것이 좋습니다. 그 방법에 대한 튜토리얼이 있어요여기, 그러나 이는 매우 일반적인 일이므로 이를 수행하는 방법을 알려주는 수백 개의 리소스가 있습니다.

답변2

t2 인스턴스에서 CPU 크레딧을 확인하는 데 동의했습니다. 조절에는 이러한 동작이 있을 수 있습니다.

이 링크를 확인하세요: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-credits-baseline-concepts.html

관련 정보