Re: [HACKERS] Re: v7.1b4 bad performance - Mailing list pgsql-admin
From | Hiroshi Inoue |
---|---|
Subject | Re: [HACKERS] Re: v7.1b4 bad performance |
Date | |
Msg-id | 3A931FA9.1D698302@tpf.co.jp Whole thread Raw |
In response to | Re: [HACKERS] Re: v7.1b4 bad performance (Tom Lane <tgl@sss.pgh.pa.us>) |
List | pgsql-admin |
Tom Lane wrote: > > > platform) i686-pc-linux-gnu, compiled by GCC egcs-2.91.60(turbolinux 4.2) > > min delay) 10msec according to your test program. > > -B) 64 (all other settings are default) > > Thanks. Could I trouble you to run it again with a larger -B, say > 1024 or 2048? What I've found is that at -B 64, the benchmark is > so constrained by limited buffer space that it doesn't reflect > performance at a more realistic production setting. > Hmm the result doesn't seem that obvious. First I got the following result. [CommitDelay=0] 1)tps = 23.024648(including connections establishing) tps = 23.856420(excluding connections establishing) 2)tps = 30.276270(including connections establishing) tps = 30.996459(excluding connections establishing) [CommitDelay=1] 1)tps = 23.065921(including connections establishing) tps = 23.866029(excluding connections establishing) 2)tps = 34.024632(including connections establishing) tps = 35.671566(excluding connections establishing) The result seems inconstant and after disabling checkpoint process I got the following. [CommitDelay=0] 1)tps = 24.060970(including connections establishing) tps = 24.416851(excluding connections establishing) 2)tps = 21.361134(including connections establishing) tps = 21.605583(excluding connections establishing) 3)tps = 20.377635(including connections establishing) tps = 20.646523(excluding connections establishing) [CommitDelay=1] 1)tps = 22.164379(including connections establishing) tps = 22.790772(excluding connections establishing) 2)tps = 22.719068(including connections establishing) tps = 23.040485(excluding connections establishing) 3)tps = 24.341675(including connections establishing) tps = 25.869479(excluding connections establishing) Unfortunately I have no more time to check today. Please check the similar test case. [My test case] I created and initialized 10 datatabases as follows. 1) create databases. createdb inoue1 craetedb inoue2 . createdb inoue10 2) pgbench -i inoue1 pgbench -i inoue2 . pgbench -i inoue10 3) invoke a modified pgbench pgbench -c 10 -t 100 inoue I've attached a patch to change pgbench so that each connection connects to different database whose name is 'xxxx%d'(xxxx is the specified database? name). Regards, Hiroshi InoueIndex: pgbench.c =================================================================== RCS file: /home/cvs/pgcurrent/contrib/pgbench/pgbench.c,v retrieving revision 1.1 diff -c -r1.1 pgbench.c *** pgbench.c 2001/02/20 07:55:21 1.1 --- pgbench.c 2001/02/20 09:31:13 *************** *** 540,545 **** --- 540,546 ---- PGconn *con; PGresult *res; + char dbn[48]; while ((c = getopt(argc, argv, "ih:nvp:dc:t:s:S")) != EOF) { *************** *** 639,645 **** } /* opening connection... */ ! con = PQsetdb(pghost, pgport, NULL, NULL, dbName); if (PQstatus(con) == CONNECTION_BAD) { fprintf(stderr, "Connection to database '%s' failed.\n", dbName); --- 640,648 ---- } /* opening connection... */ ! /*con = PQsetdb(pghost, pgport, NULL, NULL, dbName);*/ ! sprintf(dbn, "%s1", dbName); ! con = PQsetdb(pghost, pgport, NULL, NULL, dbn); if (PQstatus(con) == CONNECTION_BAD) { fprintf(stderr, "Connection to database '%s' failed.\n", dbName); *************** *** 726,732 **** /* make connections to the database */ for (i = 0; i < nclients; i++) { ! state[i].con = PQsetdb(pghost, pgport, NULL, NULL, dbName); if (PQstatus(state[i].con) == CONNECTION_BAD) { fprintf(stderr, "Connection to database '%s' failed.\n", dbName); --- 729,737 ---- /* make connections to the database */ for (i = 0; i < nclients; i++) { ! /*state[i].con = PQsetdb(pghost, pgport, NULL, NULL, dbName);*/ ! sprintf(dbn, "%s%d", dbName, i + 1); ! state[i].con = PQsetdb(pghost, pgport, NULL, NULL, dbn); if (PQstatus(state[i].con) == CONNECTION_BAD) { fprintf(stderr, "Connection to database '%s' failed.\n", dbName);
pgsql-admin by date: