ランダムに応答を停止する EC2 サーバーをデバッグする方法

ランダムに応答を停止する EC2 サーバーをデバッグする方法

Amazon Linux AMI 2018.03 (4.14.59-64.43.amzn1.x86_64) で t2.micro インスタンスを実行しています。Apache/2.4.33 を使用して PHP ウェブサイトをホストし、RDS MySQL データベースに接続します。

時々、サーバーが完全に「消える」ことがあります。Web サイトを表示しようとしたり、FTP に接続しようとしたり、さらには putty を使用して SSH に接続しようとしたりすると、すべてタイムアウトになります。また、サーバーは自動的には復帰しません。AWS コンソールから手動でサーバーをシャットダウンして再起動すると、すべてが正常に戻ります。(興味深いことに、「再起動」コマンドは何も実行せず、サーバーによって無視されるようです。シャットダウンして再起動する場合にのみ機能します)

問題は、私が見つけられるすべてのログ ファイルをチェックしたのですが、サーバーが応答を停止した時間帯にはまったく何も記録されていないようで、トラブルシューティング方法がわからないことです。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

関連情報