Lucio Andres Perez wrote:
>
> Hi Tim
>
> I did it as you said me and I got the following results when the database
> coming down:
>
> [postgres@postgres pgsql]$ ps aux | grep postmaster
> postgres 6616 0.0 0.0 0 0 p4 Z 20:05 0:00 (postmaster
> <zombie>)
> postgres 6650 0.0 0.0 0 0 p4 Z 20:11 0:00 (postmaster
> <zombie>)
> postgres 6654 0.1 0.0 0 0 p4 Z 20:12 0:00 (postmaster
> <zombie>)
> postgres 6655 0.0 0.0 0 0 p4 Z 20:12 0:00 (postmaster
> <zombie>)
> postgres 6659 0.0 0.0 0 0 p4 Z 20:13 0:00 (postmaster
> <zombie>)
> postgres 6662 0.0 0.0 0 0 p4 Z 20:14 0:00 (postmaster
> <zombie>)
> postgres 6663 0.0 0.0 0 0 p4 Z 20:14 0:00 (postmaster
> <zombie>)
> postgres 6664 0.1 0.0 0 0 p4 Z 20:14 0:00 (postmaster
> <zombie>)
> postgres 6666 0.0 0.0 0 0 p4 Z 20:15 0:00 (postmaster
> <zombie>)
> postgres 6667 0.0 0.0 0 0 p4 Z 20:15 0:00 (postmaster
> <zombie>)
> postgres 6668 0.0 0.0 0 0 p4 Z 20:15 0:00 (postmaster
> <zombie>)
> postgres 6669 0.1 0.0 0 0 p4 Z 20:16 0:00 (postmaster
> <zombie>)
> postgres 6670 0.0 0.0 0 0 p4 Z 20:16 0:00 (postmaster
> <zombie>)
> postgres 6671 0.0 0.0 0 0 p4 Z 20:16 0:00 (postmaster
> <zombie>)
> postgres 6672 0.2 0.0 0 0 p4 Z 20:16 0:00 (postmaster
> <zombie>)
> postgres 6673 0.2 0.0 0 0 p4 Z 20:16 0:00 (postmaster
> <zombie>)
> postgres 6674 0.0 0.0 0 0 p4 Z 20:17 0:00 (postmaster
> <zombie>)
> postgres 6675 0.2 0.0 0 0 p4 Z 20:17 0:00 (postmaster
> <zombie>)
> postgres 6676 0.5 0.0 0 0 p4 Z 20:17 0:01 (postmaster
> <zombie>)
> postgres 6677 0.0 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6678 0.0 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6679 0.2 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6680 0.0 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6681 0.0 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6685 0.0 0.0 0 0 p4 Z 20:18 0:00 (postmaster
> <zombie>)
> postgres 6686 0.6 0.0 0 0 p4 Z 20:18 0:01 (postmaster
> <zombie>)
> postgres 6687 0.0 0.0 0 0 p4 Z 20:19 0:00 (postmaster
> <zombie>)
> postgres 6688 0.0 0.0 0 0 p4 Z 20:19 0:00 (postmaster
> <zombie>)
> postgres 6689 0.6 0.0 0 0 p4 Z 20:19 0:00 (postmaster
> <zombie>)
> postgres 6690 0.0 0.0 0 0 p4 Z 20:19 0:00 (postmaster
> <zombie>)
> postgres 6691 0.0 0.0 0 0 p4 Z 20:19 0:00 (postmaster
> <zombie>)
> postgres 6692 0.9 0.0 0 0 p4 Z 20:19 0:01 (postmaster
> <zombie>)
> postgres 6693 0.0 0.0 0 0 p4 Z 20:20 0:00 (postmaster
> <zombie>)
> postgres 6694 0.1 0.0 0 0 p4 Z 20:20 0:00 (postmaster
> <zombie>)
> postgres 6701 0.0 0.1 840 352 p4 S 20:21 0:00 grep postmaster
>
> [postgres@postgres data]$ more pg.stderr
> ERROR: postmaster: StreamConnection: accept: Invalid argument
>
> I think that to understand this error could be very valuable in order to find
> a solution.
>
> The pg.stdout was empty all time.
>
> I hope you can help me.
>
> Pd/ the version of my postgres is 6.4.2
>
> Thanks a lot.
>
> Tim Holloway wrote:
>
> > Something's funny here. Unless you built a backend with
> > an override on the default max backend count,
> > you should be able to create no more than 32 backend
> > processes. Which is possible also if you installed an RPM
> > version and it's built for more than 32. Otherwise you should see
> > the message "Sorry, too many clients already" when making the
> > excess connections.
> >
> > Could you provide the PostgresSQL version number? Also it
> > would help if you captured stdout and stderr and forwarded
> > them. Assuming you're using the Red Hat Control Panel to start
> > and stop the server, look at the postgres script in /etc/rc.d/init.d
> >
> > You should see something like:
> >
> > su postgres -c "postmaster -i -D /var/lib/pgsql"
> >
> > Save the old version and change to
> >
> > su postgres -c "postmaster -i -D /var/lib/pgsql >/var/lib/pgsql/pg.stdout
> > >&/var lib/pgsql/pg.stderr"
> >
> > Then start up the system, shut it down. Revert to the old
> > startup script and send the pg.stdout and pg.stderr files.
> >
> > regards,
> >
> > Tim Holloway
> >
> > Lucio Andres Perez wrote:
> > >
> > > Hi everyone,
> > >
> > > Maybe this could be a newbie trouble for somebody, but Iīve tried all I
> > > can and I havenīt found the source of my problem...
> > >
> > > I have a PII-400Mhz 192Mb RedHat 5.2 ( I know, itīs a little old )
> > > running only postgresql 6.4, the apache/php servers are running in other
> > > host.
> > >
> > > the problem is this: I start the postmaster whith the command
> > > "postmaster -i -B 256 - S" and it begins to create child process so
> > > that, when there are more than 30 process, the system is coming down,
> > > with 'segmentation fault' error messages, of course, Iīve to wait for
> > > a while, then I do a 'ps aux' to see what is going on, and I see all
> > > the process in ZOMBIE status !! and the memory is almost full, So Iīve
> > > to kill all these processes and restart the postmaster...
> > >
> > > How do I tune the postmaster so that it canīt use all the systemīs
> > > memory or at least, it can stand for more load. (in this case, load
> > > means a lot of simultaneous conexions)
> > >
> > > Please, I thank anything you can say me ...
> > >
> > > --
> > > Eng. Lucio Andres Perez
> > > NewMedia Director
> > > Telesat S.A.
> > > Cali-Colombia-SouthAmerica
> > > http://www.telesat.com.co
> > >
> > > ************
>
> --
> Eng. Lucio Andres Perez
> NewMedia Director
> Telesat S.A.
> http://www.telesat.com.co
Hmmmm. Some things I would look at:
1. Are you certain that the segmentation faults only happen AFTER
you hit 30 connections? It's possible that the reaper isn't
completely cleaning up when there's a fault and the system's then
losing track.
2. Is it possible for you to try with "-S 30"? Just to make sure
that it isn't something else masquerading as that problem?
3. Is a core file being produced? Maybe someone here can dissect
it for you.
4. Also, I think I'd run disk and RAM tests on the machine, since
there's apparent corruption in the frontend-to-backend messaging.
Based on your activity levels, you may need a customized server with
a higher backend capacity. The absolute limit is 1024, but at that
level, you're consuming a fair amount of cross-process memory and
semaphores.
It's not that hard to build PostgreSQL on a Red Hat system - the
biggest problem for me had to do with understanding that the RPM uses
/var/lib instead of /usr/local/pgsql for its directory paths. The
default configure needs g++ to build the C++ support modules.
Hope this helps!
regards,
Tim Holloway
************