Обсуждение: table overflow question
All,
I have a script that will fork off x number of process ... each one of these opens a connection to the db polls a
differentserver and polls 200+ mibs. I am doing a update after every poll (so 1 poll (out of 200) then a update.. then
anotherpoll and update and so on till 200). So I have 5 db connections each doing a update to the same table but to
differentrows. Now this works ok. and it work ok if I go up to 10 connections at once.. but any more than that and I
getthe error "Can't Connect to DB: FATAL 1: cannot open pg_class: File table overflow" now is this to be expected.. or
isthere some performace tweak I can add.. btw I am running on a hpux 11.11 dual 550 512M.
Thanks,
Travis
On Fri, Oct 18, 2002 at 10:41:39PM -0400, Williams, Travis L, NPONS wrote: > All, > I have a script that will fork off x number of process ... each one > of these opens a connection to the db polls a different server and > polls 200+ mibs. I am doing a update after every poll (so 1 poll > (out of 200) then a update.. then another poll and update and so on > till 200). So I have 5 db connections each doing a update to the > same table but to different rows. Now this works ok. and it work > ok if I go up to 10 connections at once.. but any more than that and > I get the error "Can't Connect to DB: FATAL 1: cannot open pg_class: > File table overflow" now is this to be expected.. or is there some > performace tweak I can add.. btw I am running on a hpux 11.11 dual > 550 512M. Looks like you've run into a open file limit. If you're using linux you should look in /proc/sys/fs to make sure you can actually open the number of files you need. You should estimate at least 40 files per server. I think file-max is the one you want. -- Martijn van Oosterhout <kleptog@svana.org> http://svana.org/kleptog/ > There are 10 kinds of people in the world, those that can do binary > arithmetic and those that can't.
Martijn van Oosterhout <kleptog@svana.org> writes:
> Looks like you've run into a open file limit. If you're using linux you
> should look in /proc/sys/fs to make sure you can actually open the number of
> files you need. You should estimate at least 40 files per server.
> I think file-max is the one you want.
He said he was using HPUX. On HPUX 10.20, the kernel parameters NFILE
and NINODE would be the things to bump up; I suspect 11 is the same.
The other direction to attack it from is to reduce PG's parameter
MAX_FILES_PER_PROCESS, but if you have to set that lower than 100
or so then you'd be better advised to fix the kernel.
regards, tom lane
Thanks all,
I went reading about the nfile and it does look like it is the
problem.. I could rework the script to just dump to a flat file (which I
had in the past) and have another script read it in after the fact with
only one db connection.. but that's kind of inefficient..
Travis
-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Friday, October 18, 2002 10:42 PM
To: Martijn van Oosterhout
Cc: Williams, Travis L, NPONS; pgsql-general@postgresql.org
Subject: Re: [GENERAL] table overflow question
Martijn van Oosterhout <kleptog@svana.org> writes:
> Looks like you've run into a open file limit. If you're using linux
you
> should look in /proc/sys/fs to make sure you can actually open the
number of
> files you need. You should estimate at least 40 files per server.
> I think file-max is the one you want.
He said he was using HPUX. On HPUX 10.20, the kernel parameters NFILE
and NINODE would be the things to bump up; I suspect 11 is the same.
The other direction to attack it from is to reduce PG's parameter
MAX_FILES_PER_PROCESS, but if you have to set that lower than 100
or so then you'd be better advised to fix the kernel.
regards, tom lane