Posts tagged aws

3,809 compute instances, each with 8 cores & 7GB of RAM. A total of 30,472 cores, 26.7TB of RAM and 2PB disk. Cool.

AWS add more options for SSL & ELB

Amazon have recently added some useful features such as HTTPS health checking, choice of ciphers & protocols. Also you can now verify the authenticity of the EC2 server before sending the request…which is great!

Amazon Route53 Manager

If you’re bored of managing changes for route53 from the command line, or thinking of writing some software to help you manage route53, you might want to check this small Python app out. It’s working well for me!

Amazon ElastiCache is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud. Amazon ElastiCache is protocol-compliant with Memcached and offloads the management, monitoring, and operation of in-memory cache environments.

We are excited to announce the immediate availability of Cluster GPU Instances for Amazon EC2, a new instance type designed to deliver the power of GPU processing in the cloud. GPUs are increasingly being used to accelerate the performance of many general purpose computing problems. However, for many organizations, GPU processing has been out of reach due to the unique infrastructural challenges and high cost of the technology. Amazon Cluster GPU Instances remove this barrier by providing developers and businesses immediate access to the highly tuned compute performance of GPUs with no upfront investment or long-term commitment.

Amazon Cluster GPU Instances provide 22 GB of memory, 33.5 EC2 Compute Units, and utilize the Amazon EC2 Cluster network, which provides high throughput and low latency for High Performance Computing (HPC) and data intensive applications. Each GPU instance features two NVIDIA Tesla® M2050 GPUs, delivering peak performance of more than one trillion double-precision FLOPS. Many workloads can be greatly accelerated by taking advantage of the parallel processing power of hundreds of cores in the new GPU instances. Many industries including oil and gas exploration, graphics rendering and engineering design are using GPU processors to improve the performance of their critical applications.

Amazon Cluster GPU Instances extend the options for running HPC workloads in the AWS cloud. Cluster Compute Instances, launched earlier this year, provide the ability to create clusters of instances connected by a low latency, high throughput network. Cluster GPU Instances give customers with HPC workloads an additional option to further customize their high performance clusters in the cloud. For those customers who have applications that can benefit from the parallel computing power of GPUs, Amazon Cluster GPU Instances can often lead to even further efficiency gains over what can be achieved with traditional processors. By leveraging both instance types, HPC customers can tailor their compute cluster to best meet the performance needs of their workloads. For more information on HPC capabilities provided by Amazon EC2, visit aws.amazon.com/ec2/hpc-applications.

Amazon EC2 EBS Initial Benchmarks

Now that Amazon EBS, or Elastic Block Store is publicly available, a lot of people are probably interested in some benchmarks!

The setup;

  • m1.small instance
  • alestic/debian-5.0-lenny-base-20080803.manifest.xml

All that was installed was mdadm & bonnie++.

Single disc performance

Mounting a single 1gb EBS volume to /dev/sdd,

128k block

dd if=/dev/zero of=/dev/sdd bs=128k
dd: writing `/dev/sdd': No space left on device
8193+0 records in
8192+0 records out
1073741824 bytes (1.1 GB) copied, 16.9026 s, 63.5 MB/s

256k block

dd if=/dev/zero of=/dev/sdd bs=256k
dd: writing `/dev/sdd': No space left on device
4097+0 records in
4096+0 records out
1073741824 bytes (1.1 GB) copied, 16.7213 s, 64.2 MB/s

512k block

dd if=/dev/zero of=/dev/sdd bs=512k
dd: writing `/dev/sdd': No space left on device
2049+0 records in
2048+0 records out
1073741824 bytes (1.1 GB) copied, 16.5371 s, 64.9 MB/s

1M block

dd if=/dev/zero of=/dev/sdd bs=1M
dd: writing `/dev/sdd': No space left on device
1025+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 16.9271 s, 63.4 MB/s

Testing mdadm performance with 2 EBS volumes, RAID 0 (Striped)

I attached another 1gb disc, /dev/sde, and then created a new md device.

mdadm --create /dev/md0 --level=0 -n 2 /dev/sd[d-e]

Repeating the above tests - obviously this is now over 2gb of disc;

128k block

dd if=/dev/zero of=/dev/md0 bs=128k
dd: writing `/dev/md0': No space left on device
16384+0 records in
16383+0 records out
2147352576 bytes (2.1 GB) copied, 22.8826 s, 93.8 MB/s

256k block

dd if=/dev/zero of=/dev/md0 bs=256k
dd: writing `/dev/md0': No space left on device
8192+0 records in
8191+0 records out
2147352576 bytes (2.1 GB) copied, 22.2414 s, 96.5 MB/s

512k block

dd if=/dev/zero of=/dev/md0 bs=512k
dd: writing `/dev/md0': No space left on device
4096+0 records in
4095+0 records out
2147352576 bytes (2.1 GB) copied, 21.7883 s, 98.6 MB/s

1M block

dd if=/dev/zero of=/dev/md0 bs=1M
dd: writing `/dev/md0': No space left on device
2048+0 records in
2047+0 records out
2147352576 bytes (2.1 GB) copied, 20.9595 s, 102 MB/s

2M block

dd if=/dev/zero of=/dev/md0 bs=2M
dd: writing `/dev/md0': No space left on device
1024+0 records in
1023+0 records out
2147352576 bytes (2.1 GB) copied, 21.9773 s, 97.7 MB/s

Testing mdadm performance with 3 EBS volumes, RAID 0 (Striped)

I attached another 1gb disc, /dev/sdf, and then stopped md0 and replaced it with a new md device.

mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-e]
mdadm --create /dev/md0 --level=0 -n 3 /dev/sd[d-f]

Repeating the above tests - obviously this is now over 3gb of disc;

128k block

dd if=/dev/zero of=/dev/md0 bs=128k
dd: writing `/dev/md0': No space left on device
24575+0 records in
24574+0 records out
3221028864 bytes (3.2 GB) copied, 30.4635 s, 106 MB/s

256k block

dd if=/dev/zero of=/dev/md0 bs=256k
dd: writing `/dev/md0': No space left on device
12288+0 records in
12287+0 records out
3221028864 bytes (3.2 GB) copied, 30.0373 s, 107 MB/s

512k block

dd if=/dev/zero of=/dev/md0 bs=512k
dd: writing `/dev/md0': No space left on device
6144+0 records in
6143+0 records out
3221028864 bytes (3.2 GB) copied, 29.601 s, 109 MB/s

1M block

dd if=/dev/zero of=/dev/md0 bs=1M
dd: writing `/dev/md0': No space left on device
3072+0 records in
3071+0 records out
3221028864 bytes (3.2 GB) copied, 30.083 s, 107 MB/s

2M block

dd if=/dev/zero of=/dev/md0 bs=2M
dd: writing `/dev/md0': No space left on device
1536+0 records in
1535+0 records out
3221028864 bytes (3.2 GB) copied, 29.4059 s, 110 MB/s

Testing mdadm performance with 3 EBS volumes, RAID 5

Time to test with some redundancy, so I stopped md0 and replaced it with a new md device as follows;

mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-f]
mdadm --create /dev/md0 --level=5 -n 3 /dev/sd[d-f]

After waiting for the resync to finish (which took about 2 minutes), I repeated the above tests - obviously this is now over 2gb-ish of disc;

128k block

dd if=/dev/zero of=/dev/md0 bs=128k
dd: writing `/dev/md0': No space left on device
16384+0 records in
16383+0 records out
2147352576 bytes (2.1 GB) copied, 39.8346 s, 53.9 MB/s

256k block

dd if=/dev/zero of=/dev/md0 bs=256k
dd: writing `/dev/md0': No space left on device
8192+0 records in
8191+0 records out
2147352576 bytes (2.1 GB) copied, 36.197 s, 59.3 MB/s

512k block

dd if=/dev/zero of=/dev/md0 bs=512k
dd: writing `/dev/md0': No space left on device
4096+0 records in
4095+0 records out
2147352576 bytes (2.1 GB) copied, 35.9269 s, 59.8 MB/s

1M block

dd if=/dev/zero of=/dev/md0 bs=1M
dd: writing `/dev/md0': No space left on device
2048+0 records in
2047+0 records out
2147352576 bytes (2.1 GB) copied, 35.9784 s, 59.7 MB/s

2M block

dd if=/dev/zero of=/dev/md0 bs=2M
dd: writing `/dev/md0': No space left on device
1024+0 records in
1023+0 records out
2147352576 bytes (2.1 GB) copied, 36.8876 s, 58.2 MB/s

Testing mdadm performance with 3 EBS volumes, RAID 10 F2

mdadm -S /dev/md0
mdadm --zero-superblock /dev/sd[d-f]
mdadm --create /dev/md0 -n 3 --level=10 --layout=f2 /dev/sd[d-f]

After waiting for the resync to finish (which took about 2 minutes), I repeated the above tests - obviously this is now over 2gb-ish of disc;

128k block

dd if=/dev/zero of=/dev/md0 bs=128k
dd: writing `/dev/md0': No space left on device
12287+0 records in
12286+0 records out
1610416128 bytes (1.6 GB) copied, 30.449 s, 52.9 MB/s

256k block

dd if=/dev/zero of=/dev/md0 bs=256k
dd: writing `/dev/md0': No space left on device
6144+0 records in
6143+0 records out
1610416128 bytes (1.6 GB) copied, 29.9024 s, 53.9 MB/s

512k block

dd if=/dev/zero of=/dev/md0 bs=512k
dd: writing `/dev/md0': No space left on device
3072+0 records in
3071+0 records out
1610416128 bytes (1.6 GB) copied, 30.4268 s, 52.9 MB/s

1M block

dd if=/dev/zero of=/dev/md0 bs=1M
dd: writing `/dev/md0': No space left on device
1536+0 records in
1535+0 records out
1610416128 bytes (1.6 GB) copied, 29.5757 s, 54.5 MB/s

2M block

dd if=/dev/zero of=/dev/md0 bs=2M
dd: writing `/dev/md0': No space left on device
768+0 records in
767+0 records out
1610416128 bytes (1.6 GB) copied, 31.57 s, 51.0 MB/s

Conclusion

It seems that using RAID does have its advantages over a single disc, even on EBS. However, I would have expected RAID 10 F2 to have similar performance to RAID 0, rather than the results seen.

I will retest soon with some other benchmarks, and configurations with more Volumes!

Russell