2017-04-19 8 views
0

AWSを以前に使用したことがなく、EC2インスタンスでホストされているPHPアプリケーションを作成しました。AWS増加iops

アプリケーションは、処理後にレコードをRDSに挿入します。フリー層では、1秒あたり約10レコードの割合で挿入します。

このプロセスのスピードをどのように改善すればよいですか?私は100ギガバイトのプロビジョニングされたIOPSストレージを1000Iopsの限界で追加しました。

私のアプリケーションを実行すると、前と同じ速度になります。

Ec2インスタンスとRDSインスタンスの仕様によって、データベースへの書き込み速度が決まります。

+0

プロビジョニングされたIOPSは、磁気ディスク時代の平均です。 gp2を使用し、最初に100GBのディスク容量を確保してください(100×3 = 300 IOPS)。 – mootmoot

答えて

0

EC2とRDSインスタンスを同じ領域に配置すると、RDS仕様を向上させることによってパフォーマンスが少し向上する可能性がありますが、一般的にMySQLは書き込み速度が速くなく、特にテーブルにインデックスを追加するほど高速です。

インサートを個別に行うのではなく、クエリでバッチ処理すると、パフォーマンスが向上します。

INSERT INTO users (name, gender) VALUES 
    ('bob', 'm'), 
    ('jane', 'f') 

あなたがメモリに書き込み、非同期バッチでそれらを挿入するためにSQSやelasticacheのようなキューイングシステムのいくつかの並べ替えを使用する場合、これは簡単になります。

+0

もしこれが愚かなコメントであれば、キューをバッチすることを除いて、これは私が決して1秒あたり100回のレコード挿入数を大幅に改善することはできないだろうか? – MattBlack

+0

必ずしもそうではありません。 MySQLには独自のボトルネックがあります。たとえば、Aurora RDSを使用します。IOPをプロビジョニングすると、1秒間に何千ものI/Oを挿入できます。ソフトウォールの問題がなくても、最大20または30kの書き込みが可能なDynamoDBが適しているかどうかを調べる価値があります。 – Henry

0

は自由層インスタンスが唯一のカジュアルな使用のために意味され

  1. AWSに注意して取るようにしてください。 t2.microは「CPUクレジット」バーストモードで動作しています。これらのCPUクレジットが使い尽くされると、サーバーは25%以上のCPUをスロットルし、パフォーマンスが低下します。

  2. 実際の問題は何かを知るためにRDS IOPS情報を送信するには、クラウドウォッチに少し投資する必要があります。それがCPU、RAMまたはIOの問題であるかどうかを調べる。

  3. AWSはSSD gp2ストレージをかなりの期間導入しています。したがって、プロビジョニングされたIOPSに直接ジャンプするよりも、GB×3 IOPSのメカニズムでAWSを使用する必要があります。 この記事はwhy you should over provisioned gp2 storage than use provisioned IOPSを説明します。また、バーチャルIOを使用してgp2でお金のための特別価値を得ることもできます。

関連する問題