2016-03-29 11 views
5

私は、約2%のCPUで動作するt2.micro EC2インスタンスを持っています。他の投稿から、TOPに表示されるCPU使用率がCloudWatchで報告されたCPUと異なることがわかりました。CloudWatch値は信頼されるべきです。EC2 CloudWatchのメモリメトリックがTopと表示されていません

しかし、私は、TOP、CloudWatch、およびNewRelicの間のメモリ使用量に関して非常に異なる値を見ています。

インスタンスには1GbのRAMがあり、TOPには〜300MbのApacheプロセスと、〜100Mbの他のプロセスが表示されます。 TOPによって報告された全体的なメモリ使用量は800Mbです。 OS /システムのオーバーヘッドは400Mバイトだと思いますか?

しかし、CloudWatchは700Mbの使用状況を報告し、NewRelicは200Mbの使用状況を報告します(NewRelicは300MbのApacheプロセスを他の場所でレポートしていますが、無視しています)。

CloudWatchのメモリメトリックは80%を超えることが多く、実際の値が何であるかを知りたいので、必要に応じていつスケールするか、メモリ使用量を減らす方法を知っています。

ここで時間をかけて何かがより多くのメモリを使用しているようで、最近の記憶プロファイルです(ビッグディップは、Apacheの再起動、または多分GCのどちらかである?)

Screenshot of memory usage over last 12 days

答えて

0

CloudWatchのは、実際にメモリ使用量に関するメトリクスを提供していません。 EC2インスタンスの場合は、hereを確認できます。

結果として、参照しているMemoryUtilizationメトリックは、構成済みのものまたはインスタンス上で実行中のアプリケーションによってプッシュされるカスタムメトリックです。

この結果、実際にこのメトリックのデータをプッシュするものを特定する必要があります。データソースは間違ったことを明らかにしているか、信頼性がありません。

あなたが見ている動作は、CloudWatchの問題ではありません。

+2

コメントありがとうございます。 私は、Cloudwatch(http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/mon-scripts.html)にメモリ情報を送信するためにAmazonが提供するスクリプトを使用しています。 これをメモリ情報と比較するTopとNewRelicによって提供される値が異なるので、サーバーがいつ容量に達しているかを評価する際に、どれが最も信頼できるかを理解しようとしています。 – Claude

+0

それは本当に面白いです。これらのスクリプトの仕組みは完全にはわかりませんが、公式にサポートされていないことはわかっています。 Amazon Linuxを使用していますか?多分スクリプトは他のLinuxディストリビューションでは信頼できません...公式のAWSサポートフォーラムにこれを載せることをお勧めします – mickzer

+0

「彼らは公式にサポートされていないことを知っています」 - OPはAWSドキュメントそれは正式に正式にサポートされていますか? – HopeKing

2

AWSは、EC2インスタンスのメモリメトリックをサポートしていません。 AmazonはEC2インスタンス(サーバー)の外部からすべての監視を実行するため、インスタンス内でメモリメトリックを取得することはできません。ただし、インスタンスの完全な監視を行うには、CPU UtilizationおよびNetwork IO操作とともに、インスタンスごとにMemory Utilization統計が必要です。 しかし、Cloudwatchのカスタムメトリック機能を使用して、Cloudwatchにアプリレベルのデータを送信し、アマゾンツールを使用してそれを監視することができます。 詳細については、このブログに従うことができます。http://upaang-saxena.strikingly.com/blog/adding-ec2-memory-metrics-to-aws-cloudwatch この場合、cronを5分間隔に設定でき、すべてのデータポイントをCloudwatchで見ることができます。

関連する問題