FW:

Поиск
Список
Период
Сортировка
От Orhan Aglagul
Тема FW:
Дата
Msg-id 868BCE5A6576F44A862F1FBBC3E14A0104255AF7@ms17.mse9.exchange.ms
обсуждение исходный текст
Список pgsql-performance
Yes, I did not do it in one transaction.
All 3 machines are configured with the same OS and same version
postgres.
No kernel tweaking and no postgres tweaking done (except the fsync)...

-----Original Message-----
From: Scott Marlowe [mailto:smarlowe@g2switchworks.com]
Sent: Tuesday, May 08, 2007 5:23 PM
To: Orhan Aglagul
Cc: pgsql-performance@postgresql.org
Subject: Re: [PERFORM]

On Tue, 2007-05-08 at 17:59, Orhan Aglagul wrote:
> Hi Everybody,
>
> I was trying to see how many inserts per seconds my application could
> handle on various machines.
>
> Those are the machines I used to run my app:
>
>
>
> 1)       Pentium M 1.7Ghz
>
> 2)       Pentium 4 2.4 Ghz
>
> 3)       DMP Xeon 3Ghz
>
>
>
> Sure, I was expecting the dual Zeon to outperform the Pentium M and 4.
> But the data showed the opposite.
>
> So, I wrote a simple program (in C) using the libpq.so.5 which opens a
> connection to the database (DB in localhost),
>
> Creates a Prepared statement for the insert and does a 10,000 insert.
> The result did not change.
>
>
>
> Only after setting fsync to off in the config file, the amount of time
> to insert 10,000 records was acceptable.
>
>
>
> Here is the data:
>
>
>
> Time for 10000 inserts
>
> Fsync=on
>
> Fsync=off
>
> Pentium M 1.7
>
> ~17 sec
>
> ~6 sec
>
> Pentium 4 2.4
>
> ~13 sec
>
> ~11 sec
>
> Dual Xeon
>
> ~65 sec
>
> ~1.9 sec
>
>
>
>
> I read that postgres does have issues with MP Xeon (costly context
> switching). But I still think that with fsync=on 65 seconds is
> ridiculous.
>
>
>
> Can anybody direct me to some improved/acceptable  performance with
> fsync=on?

I'm guessing you didn't do the inserts inside a single transaction,
which means that each insert was it's own transaction.

Try doing them all in a transaction.  I ran this simple php script:

<?php
$conn = pg_connect("dbname=smarlowe");
pg_query("begin");
for ($i=0;$i<10000;$i++){
        $r = rand(1,10000000);
        pg_query("insert into tenk (i1) values ($r)");
}
pq_query("commit");
?>

and it finished in 3.5 seconds on my workstation (nothing special)

В списке pgsql-performance по дате отправления:

Предыдущее
От: "Orhan Aglagul"
Дата:
Сообщение: Re:
Следующее
От: "Orhan Aglagul"
Дата:
Сообщение: FW: