2017-07-18 36 views
1

私はAmazons RDSプラットフォーム上で動作するデータベースを持っていますが、使用可能なメモリの量が十分ではないようです。AWS RDSメモリの問題

インスタンスタイプはdb.m4.xlargeですが、これは私に16 GiBのメモリを与えるはずですが、監視ページを見ると、現在の値が2460 MBのしきい値に達しています。

Screenshot of AWS RDS monitoring page

私は、DBパラメータグループを見てみると、それは私がDBにログインし、show global variablesを実行することにより、(設定されている実際の値をチェックするときinnodb_buffer_pool_sizeしかしDBinstanceClassMemoryの3/4であることを示しています)これは12465471488に設定されています(これはバイトであると仮定します)。

これはなぜ、どのようなオプションを使用して、RDSインスタンスが利用可能なメモリを最大限に活用するように設定する必要があるかを知っていますか?

+0

私は現時点でそのリファレンスを見つけることができませんが、私はあなたの特定の質問に答えがありませんが、私はあなたのデータベース操作は、タイプ指定。インスタンスタイプが16GBのメモリを指定している場合、それらのギグのいくつかは基底のEC2インスタンスに移動します。私はそれが16GBを2.5GBに減らすとは想像もしません。そのために別の理由が考えられますが、それを分かち合うと思っていました。 – Brooks

+0

@Brooksいいえ、いくつかのギグではありません。おそらく、256 - 512 MiBの範囲に近いでしょう。インスタンスは、データベースの実行以外は何も実行していません。 –

+0

私は訂正されました - ドキュメンテーションを見つけられたら助けになりました...!訂正ありがとう! – Brooks

答えて

3

コンソールに表示されている数字は、メモリが未使用のメモリです。です。間違いなく直感に反しますが、これがここに表示されています。数字に隣接する小さな棒グラフは大部分が満杯であり、ほとんど空ではないことに注意してください。

+1

監視チームは、請求チームの書籍の葉を取っていなければなりません。 –

+0

はい、正しいです。ご協力ありがとうございました。私がこれを確認できる方法の1つは、インスタンスを再起動してからフルメモリを使用できるようにすることでしたが、以前の値に戻しました。これは、基本的には、インスタンスを大きくする必要があるか、またはメモリを解放するために(可能であれば)いくつかのインデックスを削除する必要があることを意味しますか? – SamBremner

+0

時間が経ってもシステムが安定している限り、2.5Gの空きメモリで十分です。 MySQLで使用されているメモリの大部分(正しい構成で)はInnoDBバッファプールによって使用されます。これはディスクからデータをロードすることによって要求されたもので、決して解放されません。このメモリを解放するのは理にかなっていません。なぜなら、メモリにデータを格納すること(ディスクへのアクセスを避ける)が大きな最適化であるからです。合計データ+索引がバッファー・プールのサイズを超えている場合、プール内にないデータが問合せで変更されていない場合は、メモリー使用量が変更されていない場合、スペースを使用するために、 –