title: IOPS or Throughput? - Determining Write Bottleneck in Amazon RDS Instance
body: <p>We have nightly load jobs that writes several hundred thousand records to an Mysql reporting database running in Amazon RDS. </p>
  
  <p>The load jobs are taking several hours to complete, but I am having a hard time figuring out where the bottleneck is. </p>
  
  <p>The instance is currently running with General Purpose (SSD) storage. By looking at the cloudwatch metrics, it appears I am averaging less than 50 IOPS for the last week. However, Network Receive Throughput is less than 0.2 MB/sec. </p>
  
  <p>Is there anyway to tell from this data if I am being bottlenecked by network latency (we are currently loading the data from a remote server...this will change eventually) or by Write IOPS? </p>
  
  <p>If IOPS is the bottleneck, I can easily upgrade to Provisioned IOPS. But if network latency is the issue, I will need to redesign our load jobs to load raw data from EC2 instances instead of our remote servers, which will take some time to implement. </p>
  
  <p>Any advice is appreciated. </p>
  
  <p><strong>UPDATE</strong>:
  More info about my instance. I am using an m3.xlarge instance. It is provisioned for 500GB in size. The load jobs are done with the ETL tool from pentaho. They pull from multiple (remote) source databases and insert into the RDS instance using multiple threads. </p>
  
  <p><img src="https://i.stack.imgur.com/gl3Dj.png" alt="RDS Cloudwatch Metrics"></p>