postmaster grows
Hi.
I have a RedHat Linux 6.2 (kernel 2.2.18pre1 SMP) on Intel platform.
Postgres-7.0.3-2 (RPM).
It grows. Initially about 5mb it grows to 60-70 mb after 2-3 weeks.
I use plpgsql.
If it does matter, server have a chrooted area. Postgres is running in root
but accessed both from root and from chroot (via hardlinked socket /tmp/.s.PGSQL.5432)
Some times ago i upgraded it from 7.0.2 version, that grew too.
--
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫,
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫
(8312) 30-19-05, 34-00-02, 30-09-73
With best regards, Max Vaschenko,
Nizhny Novgorod Information Networks.
Max Vaschenko <max@nino.ru> writes:
I have a RedHat Linux 6.2 (kernel 2.2.18pre1 SMP) on Intel platform.
Postgres-7.0.3-2 (RPM).
It grows. Initially about 5mb it grows to 60-70 mb after 2-3 weeks.
Is this the *postmaster* that's growing, or an individual backend that
you've kept running for a long time?
We've fixed a fair number of memory leaks in the backend since 7.0.*,
but there aren't any known leaks in the postmaster ...
regards, tom lane
Tom Lane wrote:
Max Vaschenko <max@nino.ru> writes:
I have a RedHat Linux 6.2 (kernel 2.2.18pre1 SMP) on Intel platform.
Postgres-7.0.3-2 (RPM).
It grows. Initially about 5mb it grows to 60-70 mb after 2-3 weeks.Is this the *postmaster* that's growing, or an individual backend that
you've kept running for a long time?
One backend is running long time (2-3 weeks), but i don't pay attension on it.
Growing affected on both postmaster and individual backends (running usually less than 1 minute).
After some (2-3 weeks) time both postmaster and all (every) backends take
about 60mb memory.
We've fixed a fair number of memory leaks in the backend since 7.0.*,
but there aren't any known leaks in the postmaster ...
May be backend that running long time, causes other postgres processes to grow?
regards, tom lane
--
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫,
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫
(8312) 30-19-05, 34-00-02, 30-09-73
With best regards, Max Vaschenko,
Nizhny Novgorod Information Networks.
Max Vaschenko <max@nino.ru> writes:
After some (2-3 weeks) time both postmaster and all (every) backends take
about 60mb memory.
Okay, then it is a postmaster leak. The backends are started by fork
from the postmaster, so they'd inherit whatever data memory size the
postmaster currently has.
May be backend that running long time, causes other postgres processes
to grow?
Not possible for a backend to affect the postmaster like that, AFAICS.
I think it's just a garden-variety memory leak in some postmaster
operation.
Since this isn't being reported by other folks, either there's a
system-specific problem or you are using a postmaster feature that's not
widely used. RedHat 6.2 is pretty common so we can probably eliminate
system-specific issues. Which authentication method(s) do you use?
(If you could send your whole pg_hba.conf file, that might be useful to
look at.)
regards, tom lane
Tom Lane wrote:
Max Vaschenko <max@nino.ru> writes:
After some (2-3 weeks) time both postmaster and all (every) backends take
about 60mb memory.Okay, then it is a postmaster leak. The backends are started by fork
from the postmaster, so they'd inherit whatever data memory size the
postmaster currently has.May be backend that running long time, causes other postgres processes
to grow?Not possible for a backend to affect the postmaster like that, AFAICS.
I think it's just a garden-variety memory leak in some postmaster
operation.Since this isn't being reported by other folks, either there's a
system-specific problem or you are using a postmaster feature that's not
widely used. RedHat 6.2 is pretty common so we can probably eliminate
system-specific issues. Which authentication method(s) do you use?
(If you could send your whole pg_hba.conf file, that might be useful to
look at.)
----- pg_hba.conf --
local all password
host all 127.0.0.1 255.255.255.255 password
host all xxx.xx.x.xx 255.255.255.255 password
host all xxx.xx.x.xx 255.255.255.255 password
host all xxx.xx.x.xx 255.255.255.255 password
host all xxx.xx.x.xx 255.255.255.255 password
--------------------
Four databases with some simple plpgsql triggers.
Access to postgres from C and PHP3.
regards, tom lane
--
О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫, О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫,
О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫О©╫ О©╫О©╫О©╫О©╫
(8312) 30-19-05, 34-00-02, 30-09-73
With best regards, Max Vaschenko,
Nizhny Novgorod Information Networks.
Max Vaschenko <max@nino.ru> writes:
[ postmaster leaks memory when using password authentication ]
You are right! The postmaster leaks memory to the tune of a few dozen
bytes per password authentication attempt. I'm surprised no one noticed
this before. People must not be using password auth under heavy load...
Attached is a patch to fix it in 7.0.*.
regards, tom lane
*** src/backend/libpq/crypt.c.orig Sat Jul 17 16:17:01 1999
--- src/backend/libpq/crypt.c Wed Feb 7 18:40:01 2001
***************
*** 59,64 ****
--- 59,65 ----
bufsize = strlen(pwdfilename) + strlen(CRYPT_PWD_RELOAD_SUFX) + 1;
rpfnam = (char *) palloc(bufsize);
snprintf(rpfnam, bufsize, "%s%s", pwdfilename, CRYPT_PWD_RELOAD_SUFX);
+ pfree(pwdfilename);
return rpfnam;
}
***************
*** 79,84 ****
--- 80,87 ----
pwdfile = AllocateFile(filename, "rb");
#endif
+ pfree(filename);
+
return pwdfile;
}
***************
*** 131,136 ****
--- 134,140 ----
filename = crypt_getpwdreloadfilename();
result = unlink(filename);
+ pfree(filename);
/*
* We want to delete the flag file before reading the contents of the