/
Amazon EC2 adjustments

Amazon EC2 adjustments

We use Amazon EC2 for our Marmotta and PostgreSQL servers, with instances that are EBS-optimized. In the course of addressing performance issues, we've had to attach faster EBS volumes, upgrade our EC2 instance type, and enable Enhanced Networking to deal with I/O and networking bottlenecks. Enhanced Networking gives you theoretically faster network connectivity between servers, but also gives you an ethernet driver in the Linux kernel that supports irqbalance. This is significant to our discussion of balancing interrupt requests, on its dedicated page. EBS optimization allows an instance to get better throughput.

Amazon was throttling our storage I/O until we upgraded to EBS volumes (i.e. SAN storage volumes) that allowed for higher block interface request rates.

Ongoing slow write performance questions

This section is relevant to our page about addressing slow updates and inserts.

The EBS volume that houses Marmotta's triples table is currently of highest concern, because it is the one that gets hit hardest when we encounter periods of bad write performance. It's rated at 12,000 IOPS. Our CloudWatch chart for this volume shows it using a maximum of about 350K read/write operations per minute.

One might be inclined to think that 12,000 operations per second would provide 720,000 operations per minute, and 350,000 would be within that limit; but our kernel statistics indicate high utilization for this device:

Unfortunately, the title of Amazon CloudWatch's "Consumed Read Write Ops" chart may be causing some confusion, because it implies that it has to do with IOPS being "consumed." Instead, there's some possibility that, because of the way in which AWS's IOPS are calculated (considering not just the number of operations, but the size of each operation, which could vary), we're running up against a storage volume speed limitation again. Throwing faster hardware at this problem might make it go away for a while, but it still seems to us that the patterns documented in the bad insert / update performance page are more fundamental.

 

 

Related content

Using irqbalance and SMP IRQ affinity
Using irqbalance and SMP IRQ affinity
More like this
Various PostgreSQL changes (not covered elsewhere herein)
Various PostgreSQL changes (not covered elsewhere herein)
More like this
Record Persistence
Record Persistence
More like this
Profiling memory growth and execution time
Profiling memory growth and execution time
More like this
Index performance with high context counts
Index performance with high context counts
More like this
Ingestion2 Roadmap
Ingestion2 Roadmap
More like this