You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@couchdb.apache.org by evgeny_n <en...@gmail.com> on 2009/02/18 14:28:18 UTC

Performance

Hello,

i can't understand some thing, please explain me =)

I have writing performance about 30 documents per second.

Two machines:
one is CouchDB server with already created db (~1M documents);
another - i wrote test program (Java + jcouchdb) that sends documents (~ 1Kb
each) to server db.

Best result that I get is about 30 sends per second! Why so slow?
Performance monitor on server shows that CPU is 40% all time (Disk and
Network is 30-40% too). On test machine - there is no full CPU activity too.

On both machines: Windows XP SP2.

Thank you, very much!

Re: Performance

Posted by Ulises <ul...@gmail.com>.
> version of couch? if you're not running trunk, you really ought to
> version of erlang? you should be near the tip here too, i believe

Moreover, bulk uploads or single doc uploads? That makes a big difference.

U

Re: Performance

Posted by Dean Landolt <de...@deanlandolt.com>.
On Wed, Feb 18, 2009 at 8:28 AM, evgeny_n <en...@gmail.com> wrote:

> Hello,
>
> i can't understand some thing, please explain me =)
>
> I have writing performance about 30 documents per second.
>
> Two machines:
> one is CouchDB server with already created db (~1M documents);
> another - i wrote test program (Java + jcouchdb) that sends documents (~
> 1Kb
> each) to server db.
>
> Best result that I get is about 30 sends per second! Why so slow?
> Performance monitor on server shows that CPU is 40% all time (Disk and
> Network is 30-40% too). On test machine - there is no full CPU activity
> too.
>
> On both machines: Windows XP SP2.
>
> Thank you, very much!


version of couch? if you're not running trunk, you really ought to
version of erlang? you should be near the tip here too, i believe

Re: Performance

Posted by Jens Alfke <je...@mooseyard.com>.
On Feb 18, 2009, at 5:28 AM, evgeny_n wrote:

> i can't understand some thing, please explain me =)
> I have writing performance about 30 documents per second.

If you're writing documents in individual transactions, that's around  
what I would expect. I'm not experienced with CouchDB, but I've done a  
lot of work with sqlite, which is similar in that it's a local  
filesystem-based database. Transactions are expensive because each one  
requires updating the file and flushing the filesystem changes to disk  
(the latter cost can be very significant.)

> Best result that I get is about 30 sends per second! Why so slow?
> Performance monitor on server shows that CPU is 40% all time (Disk and
> Network is 30-40% too). On test machine - there is no full CPU  
> activity too.

You could try to get some more detailed statistics...

How does the CPU usage break down by process? (If there are view  
updates going on, the map and reduce functions will be running in  
external spidermonkey processes, if I understand the architecture  
correctly.)

I'm not a Windows user, but does it have facilities that let you do  
runtime profiling of processes? (I'm thinking of the 'sample' tool on  
Mac OS X, which is an essential tool for diagnosing where a process is  
spending its time.)

Can you log the filesystem calls (again, the tool I would use on my  
platform is fs_usage.)

—Jens