Hi Konstantin,
Please run: /opt/IBM/xlc/13.1.3/bin/xlc -qversion so that I know your exact
XLC v13 version.
I'm building on Power7 and not giving any architecture flag to XLC.
I'm not using -qalign=natural . Thus, by default, XLC use -qalign=power, which
is close to natural, as explained at:
https://www.ibm.com/support/knowledgecenter/SSGH2K_13.1.0/com.ibm.xlc131.aix.doc/compiler_ref/opt_align.html
Why are you using this flag ?
Thanks for info about pgbench. PostgreSQL web-site contains a lot of old
information...
If you could share scripts or instructions about the tests you are doing with
pgbench, I would reproduce here.
I have no "real" application. My job consists in porting OpenSource packages on
AIX. Many packages. Erlang, Go, these days. I just want to make PostgreSQL RPMs
as good as possible... within the limited amount of time I can give to this
package, before moving to another one.
About the zombie issue, I've discussed with my colleagues. Looks like the
process keeps zombie till the father looks at its status. However, though I did
that several times, I do not remember well the details. And that should be not
specific to AIX. I'll discuss with another colleague, tomorrow, who should
understand this better than me.
Patch for Large Files: When building PostgreSQL, I found required to use the
following patch so that PostgreSQL works with large files. I do not remember
the details. Do you agree with such a patch ? 1rst version (new-...) shows the
exact places where define _LARGE_FILES 1 is required. 2nd version
(new2-...) is simpler.
I'm now experimenting with your patch for dead lock. However, that should be
invisible with the "check-world" tests I guess.
Regards,
Tony
Le 01/02/2017 à 16:59, Konstantin Knizhnik a écrit :
Hi Tony,
On 01.02.2017 18:42, REIX, Tony wrote:
Hi Konstantin
XLC.
I'm on AIX 7.1 for now.
I'm using this version of XLC v13:
# xlc -qversion
IBM XL C/C++ for AIX, V13.1.3 (5725-C72, 5765-J07)
Version: 13.01.0003.0003
With this version, I have (at least, since I tested with "check" and not
"check-world" at that time) 2 failing tests: create_aggregate , aggregates .
With the following XLC v12 version, I have NO test failure:
# /usr/vac/bin/xlc -qversion
IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72)
Version: 12.01.0000.0016
So maybe you are not using XLC v13.1.3.3, rather another sub-version. Unless
you are using more options for the configure ?
Configure.
What are the options that you give to the configure ?
export CC="/opt/IBM/xlc/13.1.3/bin/xlc"
export CFLAGS="-qarch=pwr8 -qtune=pwr8 -O2 -qalign=natural -q64 "
export LDFLAGS="-Wl,-bbigtoc,-b64"
export AR="/usr/bin/ar -X64"
export LD="/usr/bin/ld -b64 "
export NM="/usr/bin/nm -X64"
./configure --prefix="/opt/postgresql/xlc-debug/9.6"
Hard load & 64 cores ? OK. That clearly explains why I do not see this issue.
pgbench ? I wanted to run it. However, I'm still looking where to get it plus a
guide for using it for testing.
pgbench is part of Postgres distributive (src/bin/pgbench)
I would add such tests when building my PostgreSQL RPMs on AIX. So any help is
welcome !
Performance.
- Also, I'd like to compare PostgreSQL performance on AIX vs Linux/PPC64. Any
idea how I should proceed ? Any PostgreSQL performance benchmark that I could
find and use ? pgbench ?
pgbench is most widely used tool simulating OLTP workload. Certainly it is
quite primitive and its results are rather artificial. TPC-C seems to be better
choice.
But the best case is to implement your own benchmark simulating actual workload
of your real application.
- I'm interested in any information for improving the performance & quality of
my PostgreSQM RPMs on AIX. (As I already said, BullFreeware RPMs for AIX are
free and can be used by anyone, like Perzl RPMs are. My company (ATOS/Bull)
sells IBM Power machines under the Escala brand since ages (25 years this
year)).
How to help ?
How could I help for improving the quality and performance of PostgreSQL on AIX
?
We still have one open issue at AIX: see
https://www.mail-archive.com/[email protected]/msg303094.html
It will be great if you can somehow help to fix this problem.
--
Konstantin Knizhnik
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company
--- src/include/postgres.h.ORIGIN 2017-02-01 07:32:04 -0600
+++ src/include/postgres.h 2017-02-01 07:32:29 -0600
@@ -44,6 +44,10 @@
#ifndef POSTGRES_H
#define POSTGRES_H
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "c.h"
#include "utils/elog.h"
#include "utils/palloc.h"
--- src/pl/plpython/plpy_cursorobject.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_cursorobject.c 2017-02-01 03:00:20 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_cursorobject.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include <limits.h>
--- src/pl/plpython/plpy_elog.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_elog.c 2017-02-01 03:01:45 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_elog.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "lib/stringinfo.h"
--- src/pl/plpython/plpy_exec.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_exec.c 2017-02-01 03:01:59 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_exec.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "access/htup_details.h"
--- src/pl/plpython/plpy_main.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_main.c 2017-02-01 03:02:11 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_main.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "access/htup_details.h"
--- src/pl/plpython/plpy_planobject.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_planobject.c 2017-02-01 03:02:24 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_planobject.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "plpython.h"
--- src/pl/plpython/plpy_plpymodule.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_plpymodule.c 2017-02-01 03:02:34 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_plpymodule.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "mb/pg_wchar.h"
--- src/pl/plpython/plpy_procedure.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_procedure.c 2017-02-01 03:02:41 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_procedure.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "access/htup_details.h"
--- src/pl/plpython/plpy_resultobject.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_resultobject.c 2017-02-01 03:02:48 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_resultobject.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "plpython.h"
--- src/pl/plpython/plpy_spi.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_spi.c 2017-02-01 03:02:57 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_spi.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include <limits.h>
--- src/pl/plpython/plpy_subxactobject.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_subxactobject.c 2017-02-01 03:03:06 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_subxactobject.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "access/xact.h"
--- src/pl/plpython/plpy_typeio.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_typeio.c 2017-02-01 03:03:15 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_typeio.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "access/htup_details.h"
--- src/pl/plpython/plpy_util.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ src/pl/plpython/plpy_util.c 2017-02-01 03:03:23 -0600
@@ -4,6 +4,10 @@
* src/pl/plpython/plpy_util.c
*/
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "mb/pg_wchar.h"
--- contrib/hstore_plpython/hstore_plpython.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ contrib/hstore_plpython/hstore_plpython.c 2017-02-01 03:03:32 -0600
@@ -1,3 +1,7 @@
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "fmgr.h"
#include "plpython.h"
--- contrib/ltree_plpython/ltree_plpython.c.ORIGIN 2017-02-01 02:59:08 -0600
+++ contrib/ltree_plpython/ltree_plpython.c 2017-02-01 03:03:41 -0600
@@ -1,3 +1,7 @@
+#ifdef _AIX
+#define _LARGE_FILES 1
+#endif
+
#include "postgres.h"
#include "fmgr.h"
#include "plpython.h"
--
Sent via pgsql-hackers mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers