I am seeing very poor write performance running CouchDB on Ubuntu Linux 8.04. I built CouchDB from source about a week ago, and I am using the Python wrapper to access it all on localhost.
I am trying to add over 90,000 documents (each is about 400 bytes) and finding that I can only add about 16 documents per second. And while this is happening, my CPU is about 75% idle. I saw this discussion of the Nagle algorithm (http://www.cmlenz.net/archives/2008/03/python-httplib-performance-problems), but I don't think that is the issue since mochiweb_sockert_server.erl now has {nodelay, true}. I've also tried adding nodelay on the client side and that didn't help. Profiling the client app I see that almost all of the time is spent in httplib.py:getresponse. So there is some bottleneck between the client and server that is not CPU bound. Any suggestions? I know very little about Erlang, is there an easy way to profile CouchDB? -Brad
