Benchmarking the new AWS Postgres RDS instances

Postgres has finally come to RDS!  Want to know how these instances stack up on a naive pgbench test?

Below is a table of simple pgbench results taken over a 60 second period.   All RDS instances were launched into us-east-1a, and pgbench (9.4devel) was run from an m2.4xlarge in us-east-1a as well.

TPS t1.micro m1.small m1.large cr1.8xlarge
Run 1 138.093179 57.018885 179.679616 258.866222
Run 2 116.202688 53.297961 173.538878 233.126021
Run 3 139.867496 52.476393 174.434619 257.679689


Tagged with: , , ,
Posted in Cloud, Infrastructure, Programming

Monitoring AWS VPC tunnels

While many Amazon Web Services resources with “state” have CloudWatch sensors available, AWS VPCs and tunnels unfortunately do not.  If you’re ever in need of a solution to monitor and log the status of VPC tunnels back to another data center or office, my gist below will be right up your alley.  

It uses boto to list all VPCs and tunnels in a region, perform a custom test for tunnel availability, perform a custom action in the event of a down tunnel, and log the current state of all VPCs and tunnels to a CSV file for reporting and review.  

Just plug in your AWS credentials and preferred region at the top of the script and set this up in cron.

Tagged with: , , , , , ,
Posted in Cloud, Consulting, Infrastructure

Automating Oracle ORION I/O testing

Oracle ORION is a powerful tool for evaluating realistic OLTP and DSS/DW I/O performance.  ORION should be a part of every Oracle professional’s toolkit for build QA and performance tuning.  I’ve previously used it on this blog to show the performance of Amazon’s hi1.4lxarge SSD-backed instances and newer hs1.8xlarge instances with 117GB of RAM and 48TB of storage across 24 hard disk drives.

If you’re interested in running ORION benchmarks on AWS in an automated fashion, you might find the gist below useful.  It will download ORION, configure the disk layout file necessary to run ORION tests based on attached, non-root storage, and then execute the test.  You can throw this in the EC2 user-data script and add test result uploading to get fully automated results.

Tagged with: , , , , ,
Posted in Consulting, Programming

AWS EC2 hs1.8xlarge Oracle ORION benchmark results

Benchmarking I/O with Oracle ORION is an important part of planning, baselining, and performance-tuning Oracle environments.  I’ve previously provided ORION results for the hi1.4xlarge SSD-backed instance class, and based on some recent work, I wanted to provide an update for the newer hs1.8xlarge instance class.  Below you’ll find hs1.8xlarge Oracle ORION benchmark results with the following configuration:

  • Vanilla RHEL 6.4 (ami-a25415cb)
  • No blkdev, ioctl, or sysctl tuning
  • All 24 attached drives in orion.lun
  • No ephemeral warmup for hs1.8xlarge
  • CONCAT VLUN, no striping -simulate

ORION Run #1, hs1.8xlarge: -run oltp -write 20

  • Maximum Small IOPS=16211 @ Small=336 and Large=0
  • Minimum Small Latency=2.71 @ Small=24 and Large=0

ORION Run #2, hs1.8xlarge: -run dss

  • Maximum Large MBPS=2875.10 @ Small=0 and Large=336

In summary, our tests imply that:

  1. For 80% read, 20% write OLTP workloads, an hs1.8xlarge is capable of sustaining 16K IOPS per second with 14 (336/24 devices) concurrent small (8K) operations per device.
  2. For 80% read, 20% write OLTP workloads, an hs1.8xlarge can provide sub-5ms operation latencies for single operations per device.
  3. For read-only DSS/data warehouse workloads, an hs1.8xlarge can push approximately 2.8GB/sec at 14 (336/24) concurrent large (1MB) operations per device.

For application architectures where high-availability or performance can compensate for the durability of ephemeral storage, hs1.8xlarge instances provide incredibly compelling performance on an on-demand or reserved basis.

Tagged with: , , , , , , , ,
Posted in Cloud, Consulting, Infrastructure, Programming, Research

ipython notebook for R: Quickstart for Ubuntu

If you’re like me, you love ipython notebook but often write R.  RStudio’s integrated RMarkdown is nice, but for some contexts like quick demos or basic training, a browser-based interface is unbeatable.  What if we could get the best of both worlds – an ipython notebook for R?

The answer is rNotebook, and if you haven’t seen it yet, take a moment to watch the video below from Ramnath Vaidyanathan, its creator:

Now, before I get your hopes up too high, it’s not under very active development and it doesn’t come with the maturity that you get from ipython notebook (e.g., keyboard shortcuts, password-protection, multiple notebooks).  That said, it’s definitely worth a try!

To get started quickly, I’ve put together a basic gist that will get an Ubuntu 13.04 up and running with a live rNotebook instance.  Dan and I will be using rNotebook in our class on Legal Analytics at MSU in the upcoming week, and I’ll be launching an EC2 t1.micro for each of the students. We’ll see how it goes!

To run it on your own, just `wget` and `sudo bash` execute Then, point your browser at port 8100 wherever you’ve installed, e.g., http://localhost:8100/. Good luck!

N.B.: The WebSockets implementation is not currently compatible with versions of Chrome 30+ due to loose RFC compliance. You’ll need to use FF or a version of Chrome pre-30.

Tagged with: , , , ,
Posted in Consulting, Programming, Technology