On Thu, 2011-01-13 at 17:40 +0100, supersoft wrote: > Although most of the queries are cache hits, the performance is still > dependent of the number of simultaneous queries: > > 1 simultaneous query: 3437 ms (cache fails)
Average response time: 3437 ms Throughput: 0.29 queries/sec > 2 simultaneous queries: 594, 954 ms Average response time: 774 ms Throughput: 1.29 queries/sec > 10 simultaneous queries: 1047, 1313, 1438, 1797, 1922, 2094, 2250, 2500, > 2938, 3000 ms Average response time: 2030 ms Throughput: 4.93 queries/sec > 50 simultaneous queries: 1203, 1453, [...] Average response time: 15478 ms Throughput: 3.23 queries/sec > 100 simultaneous queries: 1297, 1531, 1969, [...] Average response time: 16285 ms Throughput: 6.14 queries/sec > Is this an expected situation? Your numbers for 50 queries are strangely low, but the trend throughout your tests indicate that your tests for 1, 2, 10, 50 and 100 threads do not perform the same number of searches. In order to compare the numbers, you need to let each test perform the same number of searches and to start each test from exactly the same warmup state. That means restarting Solr and flushing the disk cache, which might require rebooting depending on your setup. It is also recommended that you perform 5-10 searches before you start measuring anything, as the first searches are not representative of general performance. Going with the numbers as they are, performance actually increases for each thread you add: Look at throughput, not response time. This is clearly bogus, but easily explained by the cache.