1 Dec 2010 12:30
Read request throughput
Hi, I have been doing some performance testing with couch and am hoping someone here will be able to help me ascertain if/how I can get higher throughput. Scenario: I am trying to measure max couch throughput - for these tests im happy with just repeatedly requesting the same document. I have some reasonable boxes to perform these tests - they have dual quad core X5550 CPUs with HyperThreading enabled and 24GB RAM. These boxes have a stock install of oracle enterprise linux 5 on them (which is pretty much RHEL5). The oracle supplied erlang version is R12B5 and I am using couch 1.0.1 built from source. The database is pretty small (just under 100K docs) and I am querying a view that includes some other docs (the request contains include_docs=true) and using jmeter on another identical box to generate the traffic. The total amount of data returned from the request is 1467 bytes. For all of my tests I capture system state using sadc and there is nothing else happening on these boxes. In my initial round of testing I found that I was only getting ~126 requests/s throughput which surprised me somewhat. Looking at the generated graphs from the test run there were plenty of resources to go round - the disk controller was nowhere near busy and neither was the cpu. Before coming here to question my findings I took a 3rd box (same spec) and built couch from the tip of the 1.1.x branch (rev 1040477). After compiling couch and installing it I found that it didn't start up (or log anything useful). After a bit of digging I figured it's probably due to the age of the erlang version being used - I upgraded to OTP R14B and rebuilt couch against it. This gave me a working install again. I got an immediate throughput increase to ~500 requests/s which was nice but the data being collected via sadc still showed that the cpu was at most 20% utilised and the disk controller was doing next to nothing (I(Continue reading)
RSS Feed