Hi Tom, those numbers seems to be in the right ballpark to me. The single-core / dual-core distinction isn't quite right for EC2, where it's all about "compute units". Regardless of the actual CPUs used, a c1.medium should get 5x the cycles of an m1.small. Amazon's hypervisor will "steal" cycles from your m1.small instance to preserve this property if it has to.

The fact that your wallclock time dropped by 4.3x when you upgraded to a c1.medium suggests that you were mostly CPU bound. Cheers,

Adam

On May 6, 2009, at 9:39 AM, Tom Nichols wrote:

Hi Chris, here are my results:
m1.small running Ubuntu Intrepid:
real    1m3.049s
user    0m25.040s
sys     0m2.240s

c1.medium instance:
real    0m14.752s
user    0m23.990s
sys     0m2.220s

In practice, the c1.medium seemed to run my ruby scripts a bit faster,
giving a thoughput of about 0.98 MB/s, or 730 docs/s.  I thought the
m1.small instance was still dual-core; if it's a single-core machine
then that at least partly explains why running a bunch of load scripts
on the same box as CouchDB would be so slow.

Thoughts?  Is this the performance I should expect?

Thanks.
-Tom


On Tue, May 5, 2009 at 3:33 PM, Chris Anderson <[email protected]> wrote:
On Tue, May 5, 2009 at 10:43 AM, Tom Nichols <[email protected]> wrote:
So I did a rough calculation and it looks like I'm getting less than
1MB/s throughput in CouchDB --

3072 MB total / 6900 sec = 0.445 MB/s

So if the disk throughput is ~20 to 30 MB/s then the bottleneck is
somewhere in the database.  It's obviously not going to be anywhere
close to raw disk I/O speeds but this still seems incredibly slow.
Granted, I'm using a small instance...  I'll try a c1.medium and see
if the results are drastically different.


Can you try running this benchmark script and see what you get for
insert performance:

http://gist.github.com/79279

On Mon, May 4, 2009 at 5:29 PM, Jason Smith <[email protected] > wrote:
Tom Nichols wrote:

Hi, I have some questions about insert performance.

I have a single CouchDB 0.9.0 node running on small EC2 instance. I attached a huge EBS volume to it and mounted it where CouchDB's data files are stored. I fired up about ruby scripts running inserts and
after a weekend I only have about 30GB/ 12M rows of data...  Which
seems small. 'top' tells me that my CPU is only about 30% utilized.

Any idea what I might be doing wrong?  I pretty much just followed
these instructions:
http://wiki.apache.org/couchdb/Getting_started_with_Amazon_EC2

Hi, Tom. I believe I read somewhere before that the smallest EC2 instances have a slower and/or higher-latency connection to EBS, so you might want to consider a large instance, or maybe even a high-memory small instance and
see whether you get better "hardware" performance.

Although strangely, when googling it, the first article I found says that their benchmarks found no difference between EBS or even the ephemeral
filesystem.

http://www.paessler.com/blog/2009/04/07/prtg-7/monitoring-cloud-performance-with-prtg-comparing-disk-speed-for-instance-stores-and-ebs-volumes-on-amazon-ec2/

On the other hand, here is a forum posting and a random benchmark indicating
that more expensive instances get better throughput:

http://developer.amazonwebservices.com/connect/message.jspa?messageID=125197
http://blog.getasysadmin.com/2009/02/mysql-benchmarks-using-amazon-ec2.html

--
Jason Smith
Proven Corporation
Bangkok, Thailand
http://www.proven-corporation.com





--
Chris Anderson
http://jchrisa.net
http://couch.io


Reply via email to