如何调试随机停止响应的 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 甚至使用 putty 连接 SSH 都会导致超时。而且它不会自动恢复,我必须通过 AWS 控制台手动关闭服务器并重新启动它,然后一切才恢复正常。(有趣的是,“rebo​​ot”命令没有任何作用,似乎被服务器忽略了。只有关闭它并重新启动它才有效)

问题是,我检查了所有能找到的日志文件,发现在服务器停止响应时似乎没有任何异常,所以我不知道如何排除故障。检查 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

根据之前的评论,我会转向一个答案,这样你就可以标记正确。这意味着人们不会进来试图提供帮助。

我建议你设置一些交换空间,以测试是否是 RAM 问题。我有一个关于如何做到这一点的教程这里,但这是很常见的事情,所以有数百种资源告诉你如何做到这一点。

答案2

同意检查 t2 实例上的 CPU 积分。节流可以有这种行为。

查看此链接: https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/t2-credits-baseline-concepts.html

相关内容