Thread: Creating a correct and real benchmark

Creating a correct and real benchmark

From
Marcos
Date:
Hi,

I'm developing a search engine using the postgresql's databas. I've
already doing some tunnings looking increase the perform.

Now, I'd like of do a realistic test of perfom with number X of queries
for know the performance with many queries.

What the corret way to do this?

Thanks.


Re: Creating a correct and real benchmark

From
PFC
Date:
> I'm developing a search engine using the postgresql's databas. I've
> already doing some tunnings looking increase the perform.
>
> Now, I'd like of do a realistic test of perfom with number X of queries
> for know the performance with many queries.
>
> What the corret way to do this?


    I guess the only way to know how it will perform with your own
application is to benchmark it with queries coming from your own
application. You can create a test suite with a number of typical queries
and use your favourite scripting language to spawn a number of threads and
hammer the database. I find it interesting to measure the responsiveness
of the server while torturing it, simply by measuring the time it takes to
respond to a simple query and graphing it. Also you should not have N
threads issue the exact same queries, because then you will hit a too
small dataset. Introduce some randomness in the testing, for instance.
Benchmarking from another machine makes sure the test client's CPU usage
is not a part of the problem.

Re: Creating a correct and real benchmark

From
Chris
Date:
PFC wrote:
>
>> I'm developing a search engine using the postgresql's databas. I've
>> already doing some tunnings looking increase the perform.
>>
>> Now, I'd like of do a realistic test of perfom with number X of queries
>> for know the performance with many queries.
>>
>> What the corret way to do this?
>
>
>
>     I guess the only way to know how it will perform with your own
> application is to benchmark it with queries coming from your own
> application. You can create a test suite with a number of typical
> queries  and use your favourite scripting language to spawn a number of
> threads and  hammer the database. I find it interesting to measure the
> responsiveness  of the server while torturing it, simply by measuring
> the time it takes to  respond to a simple query and graphing it. Also
> you should not have N  threads issue the exact same queries, because
> then you will hit a too  small dataset. Introduce some randomness in the
> testing, for instance.  Benchmarking from another machine makes sure the
> test client's CPU usage  is not a part of the problem.

The other advice on top of this is don't just import a small amount of data.

If your application is going to end up with 200,000 rows - then test
with 200,000 rows or more so you know exactly how it will handle under
"production" conditions.

Re: Creating a correct and real benchmark

From
Marcos
Date:
Thanks for advises :-D.

Marcos