如何調試隨機停止靜默回應的 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

相關內容