compiling, performance of PostGreSQL 8.3 on 64-bit processors

Started by Benjamin Weaveralmost 18 years ago11 messagesgeneral
Jump to latest
#1Benjamin Weaver
benjamin.weaver@classics.ox.ac.uk

Dear All,

1. I have heard of problems arising from compiling PostGreSQL (8.3) on 64-bit
processors. What sort of problems am I likely to encounter and how should I fix
them? We are will run Linux Redhat 5 on a Dell PE2950 III Quad Core Xeon E54
2.33 GHz, and a Dell PE2950 III Quad Core Xeon L5335 2.0 GHz.

2. Are there performance problems running PostGreSQL 8.3 on a 64-bit processor?

Thanks in advance.

Yours Ben Weaver

--
Benjamin Weaver
Faculty Research Associate, Imaging Papyri, Greek Fragments Projects, Oxford
email: benjamin.weaver@classics.ox.ac.uk
phone: (0)1865 610236

#2Adam Rich
adam.r@sbcglobal.net
In reply to: Benjamin Weaver (#1)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

1. I have heard of problems arising from compiling PostGreSQL (8.3) on
64-bit
processors. What sort of problems am I likely to encounter and how
should I fix
them? We are will run Linux Redhat 5 on a Dell PE2950 III Quad Core
Xeon E54
2.33 GHz, and a Dell PE2950 III Quad Core Xeon L5335 2.0 GHz.

2. Are there performance problems running PostGreSQL 8.3 on a 64-bit
processor?

I have a few more questions on the 64-bit topic. Is there any benefit
to running a 32-bit OS (rhel 5 in this case) on a server with more than
4 GB of memory? In other words, can the OS-level cache take advantage
of more than 4 GB of memory? Can a process (such as PG backend) use
more than 4 GB of shared memory on a 32-bit OS? Or is the 4 GB memory
point the place where you normally transition to a 64-bit OS?

For people with experience running postgresql on systems with 16+ GB
of memory, what parameter settings have you found to be effective?
(This would be a large database that's mostly read-only that we'd
like to fit completely in memory)

Is it possible to backup (pg_dump) from a 32-bit OS to a 64-bit OS,
or is a plain SQL dump necessary?

#3Greg Smith
gsmith@gregsmith.com
In reply to: Benjamin Weaver (#1)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Thu, 26 Jun 2008, Benjamin Weaver wrote:

I have heard of problems arising from compiling PostGreSQL (8.3) on
64-bit processors.

From who?

We are will run Linux Redhat 5

If there were any problems compiling and running PostgreSQL on 64-bit
RHEL5, I wouldn't be writing this message right now because I'd be hiding
from angry customers circling with torches and pitchforks. And Tom Lane
would have already committed ritual suicide in shame.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD

#4Doug McNaught
doug@mcnaught.org
In reply to: Benjamin Weaver (#1)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Thu, Jun 26, 2008 at 7:12 PM, Adam Rich <adam.r@sbcglobal.net> wrote:

1. I have heard of problems arising from compiling PostGreSQL (8.3) on
64-bit
processors. What sort of problems am I likely to encounter and how
should I fix
them? We are will run Linux Redhat 5 on a Dell PE2950 III Quad Core
Xeon E54
2.33 GHz, and a Dell PE2950 III Quad Core Xeon L5335 2.0 GHz.

2. Are there performance problems running PostGreSQL 8.3 on a 64-bit
processor?

Should compile and run fine--I haven't heard of any problems with it,
and PG has run on 64-bit systems (SGI, Sun, Alpha) long before there
was x86_64.

I have a few more questions on the 64-bit topic. Is there any benefit
to running a 32-bit OS (rhel 5 in this case) on a server with more than
4 GB of memory? In other words, can the OS-level cache take advantage
of more than 4 GB of memory?

With a 32-bit kernel and >4GB of memory, you will indeed get more
available to cache from the OS. It's generally not recommended to use
more than 8GB with a 32-bit kernel.

Can a process (such as PG backend) use
more than 4 GB of shared memory on a 32-bit OS?

No, and the practical limit is more like 2GB (or less).

Or is the 4 GB memory
point the place where you normally transition to a 64-bit OS?

In this day and age there's not too much of a reason to run in 32 bits
on a server capable of 64. If necessary, you can run 32-bit legacy
binaries under a 64-bit kernel, if you set up the libraries properly.

For people with experience running postgresql on systems with 16+ GB
of memory, what parameter settings have you found to be effective?
(This would be a large database that's mostly read-only that we'd
like to fit completely in memory)

Can't help with this one, sorry.

Is it possible to backup (pg_dump) from a 32-bit OS to a 64-bit OS,
or is a plain SQL dump necessary?

pg_dump output (which by default *is* plain SQL, though there are two
other formats) is compatible across architectures. Backups of the
on-disk database files are not.

-Doug

#5Ben
bench@silentmedia.com
In reply to: Benjamin Weaver (#1)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Thu, 26 Jun 2008, Benjamin Weaver wrote:

Dear All,

1. I have heard of problems arising from compiling PostGreSQL (8.3) on 64-bit
processors. What sort of problems am I likely to encounter and how should I fix
them? We are will run Linux Redhat 5 on a Dell PE2950 III Quad Core Xeon E54
2.33 GHz, and a Dell PE2950 III Quad Core Xeon L5335 2.0 GHz.

What problems have you heard? It's working quite well for us on our 64-bit
Xeons, but maybe there are some snake zygotes hidden under rocks that
we're unaware of.

#6Tom Lane
tgl@sss.pgh.pa.us
In reply to: Greg Smith (#3)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

Greg Smith <gsmith@gregsmith.com> writes:

On Thu, 26 Jun 2008, Benjamin Weaver wrote:

I have heard of problems arising from compiling PostGreSQL (8.3) on
64-bit processors.

From who?

Perhaps someone who remembers PG 6.4 or thereabouts?

Certainly any version released in the last couple of years has been
tested about as heavily on 64-bit platforms as 32-bit.

regards, tom lane

#7Benjamin Weaver
benjamin.weaver@classics.ox.ac.uk
In reply to: Tom Lane (#6)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

Sorry, guys, for wasting bandwidth on this! You guys gave just the answer I
wanted to hear. Sounds like there aren't any problems.

Not knowing about such things, I was scared by the following quote. Perhaps
binaries do not need to be compiled as 64 bit binaries on a 64 bit machine? Or
perhaps it's way out of date (2004) or simply wrong.

from

http://www.osnews.com/story/5768/Are_64-bit_Binaries_Really_Slower_than_32-bit_Binaries_/page3/

"
...

The Compile Factor

Getting applications to compile as 64-bit binaries can be tricky. The build
process for some applications, such as OpenSSL, have 64-bit specifically in
mind, and require nothing fancy. Others, like MySQL and especially PostgreSQL (I
was originally going to include PostgreSQL benchmarks) took quite a bit of
tweaking. There are compiler flags, linker flags, and you'll likely end up in a
position where you need to know your way around a Makefile..."

In message <23234.1214523814@sss.pgh.pa.us> Tom Lane <tgl@sss.pgh.pa.us> writes:

Greg Smith <gsmith@gregsmith.com> writes:

On Thu, 26 Jun 2008, Benjamin Weaver wrote:

I have heard of problems arising from compiling PostGreSQL (8.3) on
64-bit processors.

From who?

Perhaps someone who remembers PG 6.4 or thereabouts?

Certainly any version released in the last couple of years has been
tested about as heavily on 64-bit platforms as 32-bit.

regards, tom lane

--
Benjamin Weaver
Faculty Research Associate, Imaging Papyri, Greek Fragments Projects, Oxford
email: benjamin.weaver@classics.ox.ac.uk
phone: (0)1865 610236

#8Doug McNaught
doug@mcnaught.org
In reply to: Benjamin Weaver (#7)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Fri, Jun 27, 2008 at 11:52 AM, Benjamin Weaver
<benjamin.weaver@classics.ox.ac.uk> wrote:

Sorry, guys, for wasting bandwidth on this! You guys gave just the answer I
wanted to hear. Sounds like there aren't any problems.

Not knowing about such things, I was scared by the following quote. Perhaps
binaries do not need to be compiled as 64 bit binaries on a 64 bit machine? Or
perhaps it's way out of date (2004) or simply wrong.

Distro support for 64-bit x86 in 2004 was light-years behind where it
is now. A lot of stuff was hard to get working back then. Now almost
everything basically Just Works.

-Doug

#9Tom Lane
tgl@sss.pgh.pa.us
In reply to: Doug McNaught (#8)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

"Douglas McNaught" <doug@mcnaught.org> writes:

On Fri, Jun 27, 2008 at 11:52 AM, Benjamin Weaver
<benjamin.weaver@classics.ox.ac.uk> wrote:

Not knowing about such things, I was scared by the following quote.

Distro support for 64-bit x86 in 2004 was light-years behind where it
is now. A lot of stuff was hard to get working back then. Now almost
everything basically Just Works.

Even in 2004, the guy would have had to be working on a rather old or
broken distro to justify such a complaint. Getting 64-bit to work was
a live issue maybe around 2001 or so...

regards, tom lane

#10Scott Marlowe
scott.marlowe@gmail.com
In reply to: Tom Lane (#9)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Fri, Jun 27, 2008 at 10:21 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:

"Douglas McNaught" <doug@mcnaught.org> writes:

On Fri, Jun 27, 2008 at 11:52 AM, Benjamin Weaver
<benjamin.weaver@classics.ox.ac.uk> wrote:

Not knowing about such things, I was scared by the following quote.

Distro support for 64-bit x86 in 2004 was light-years behind where it
is now. A lot of stuff was hard to get working back then. Now almost
everything basically Just Works.

Even in 2004, the guy would have had to be working on a rather old or
broken distro to justify such a complaint. Getting 64-bit to work was
a live issue maybe around 2001 or so...

Yeah, I thought his complaint about pg 64 bit compiling was a bit
wacky. I was building 8.0 and 8.1 64 bit on our servers back then and
/ or installing x86_64 rpms with no problems at all in 2004/5 or so.

MySQL compiling on the other hand, has always been a frakking nightmare.

#11Greg Smith
gsmith@gregsmith.com
In reply to: Adam Rich (#2)
Re: compiling, performance of PostGreSQL 8.3 on 64-bit processors

On Thu, 26 Jun 2008, Adam Rich wrote:

Is there any benefit to running a 32-bit OS (rhel 5 in this case) on a
server with more than 4 GB of memory?

If you have more than 3GB of memory, you should be using a 64-bit OS.
While theoretically the 32-bit code might be smaller which has some
advantages, in practice the 64-bit versions will be faster.

For people with experience running postgresql on systems with 16+ GB of
memory, what parameter settings have you found to be effective? (This
would be a large database that's mostly read-only that we'd like to fit
completely in memory)

Much larger values for shared_buffers and work_mem seem to be the most
effective way to use larger amounts of memory. For example, if you've got
1GB of RAM, it can be hard to allocate >15% of it to shared_buffers while
leaving enough enough RAM for OS-level operations, applications, etc.
But if you've got 16GB, a large read-only database might usefully set that
to 50% of RAM instead.

Is it possible to backup (pg_dump) from a 32-bit OS to a 64-bit OS,
or is a plain SQL dump necessary?

pg_dump is a plain SQL dump, it's just a program to make it easier to
generate them. You need to do this sort of dump/reload in order to
convert from a 32-bit to a 64-bit platform.

--
* Greg Smith gsmith@gregsmith.com http://www.gregsmith.com Baltimore, MD