Discussion:
Memoria en CentOS - postgreSQL
(demasiado antiguo para responder)
Gambito
2009-06-01 14:47:01 UTC
Permalink
Estimados, tengo un servidor con CentOS y 2 GB. de ram. EL problema que
tengo es que poco a poco se empieza a acabar la memoria disponible hasta
ocuparla toda y tener que usar la de swap (se demora aprox. una semana
en eso). Los procesos están ocupando cerca de 1.2 GB aprox.
constantemente (lo estoy verificando con ps -eo
pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid).

Al reiniciar la BD recupero la memoria, por lo que imagino que algo malo
hay ahí, pero no he podido encontrar que. Estoy utilizando centOS 5.2
final y postgresql 8.1.11, y tengo un apache corriendo ruby on rails
(con fast-cgi) y que se conecta a la BD. En el servidor tengo corriendo
además un DNS y postfix. ¿alguna idea de que puede ser? ¿mala
configuración de postgreSQL? ¿problema con el controlador de postgreSQL
para ruby? ¿alguna maña de centos?

Muchas gracias!
duna
2009-06-01 20:52:20 UTC
Permalink
Un simple top te puede confirmar que proceso te ocupa la memoria.

Postgres tiene varias opciones para tunear la memoria, echale una mirada a
ellas.
Post by Gambito
Estimados, tengo un servidor con CentOS y 2 GB. de ram. EL problema que
tengo es que poco a poco se empieza a acabar la memoria disponible hasta
ocuparla toda y tener que usar la de swap (se demora aprox. una semana en
eso). Los procesos están ocupando cerca de 1.2 GB aprox. constantemente
(lo estoy verificando con ps -eo
pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid).
Al reiniciar la BD recupero la memoria, por lo que imagino que algo malo
hay ahí, pero no he podido encontrar que. Estoy utilizando centOS 5.2
final y postgresql 8.1.11, y tengo un apache corriendo ruby on rails (con
fast-cgi) y que se conecta a la BD. En el servidor tengo corriendo además
un DNS y postfix. ¿alguna idea de que puede ser? ¿mala configuración de
postgreSQL? ¿problema con el controlador de postgreSQL para ruby? ¿alguna
maña de centos?
Muchas gracias!
Gambito
2009-06-01 21:14:38 UTC
Permalink
Post by duna
Un simple top te puede confirmar que proceso te ocupa la memoria.
Postgres tiene varias opciones para tunear la memoria, echale una mirada a
ellas.
Si se que procesos me ocupan la memoria, pero tengo procesos
"fantasmas" que me llenan la memoria... top me muestra los mismos
procesos que ps, pero ninguno de ellos me está llenando la memoria...
rara la cosa :(
Carlos (casep) Sepulveda
2009-06-02 13:38:44 UTC
Permalink
Post by duna
Un simple top te puede confirmar que proceso te ocupa la memoria.
Postgres tiene varias opciones para tunear la memoria, echale una mirada a
ellas.
   Si se que procesos me ocupan la memoria, pero tengo procesos
"fantasmas" que me llenan la memoria... top me muestra los mismos
procesos que ps, pero ninguno de ellos me está llenando la memoria...
rara la cosa :(
Holas:
Ahora si que no te entendi nada.
Como es la cosa sabes que procesos o no sabes que procesos?
Como sabes que estas usando swap?
Gambito
2009-06-02 14:46:23 UTC
Permalink
Post by Carlos (casep) Sepulveda
Post by Gambito
Post by duna
Un simple top te puede confirmar que proceso te ocupa la memoria.
Postgres tiene varias opciones para tunear la memoria, echale una mirada a
ellas.
Si se que procesos me ocupan la memoria, pero tengo procesos
"fantasmas" que me llenan la memoria... top me muestra los mismos
procesos que ps, pero ninguno de ellos me está llenando la memoria...
rara la cosa :(
Ahora si que no te entendi nada.
Como es la cosa sabes que procesos o no sabes que procesos?
Como sabes que estas usando swap?
a ver si me explico mejor....

al ejecutar el siguiente comando:

ps -eo pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid

me sale la memoria que ocupa cada proceso, en total suma cerca de 1.2GB

luego, al ejecutar top, me sale, al reiniciar la BD, que se está
ocupando aprox. 1.4GB, pero en la medida que transcurre la semana se
empieza a agotar... 1.6GB, luego 1.8 GB y después 2GB y empieza a ocupar
la memoria swap. Al reiniciar la BD el sistema vuelve a ocupar los 1.4GB
En el transcurso de la semana, cuando se me empieza a agotar la memoria,
sigo ejecutando el comando

ps -eo pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid

pero me sigue saliendo que los procesos ocupan en total cerca de 1.2GB
en forma más o menos constante... es decir, se me acaba la memoria pero
no se que proceso la consume, ¿se entiende el problema? es bien raro la
verdad, no me había pasado antes.
Carlos (casep) Sepulveda
2009-06-02 20:43:26 UTC
Permalink
Post by Carlos (casep) Sepulveda
Post by duna
Un simple top te puede confirmar que proceso te ocupa la memoria.
Postgres tiene varias opciones para tunear la memoria, echale una mirada a
ellas.
   Si se que procesos me ocupan la memoria, pero tengo procesos
"fantasmas" que me llenan la memoria... top me muestra los mismos
procesos que ps, pero ninguno de ellos me está llenando la memoria...
rara la cosa :(
Ahora si que no te entendi nada.
Como es la cosa sabes que procesos o no sabes que procesos?
Como sabes que estas usando swap?
  a ver si me explico mejor....
ps -eo pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid
me sale la memoria que ocupa cada proceso, en total suma cerca de 1.2GB
luego, al ejecutar top, me sale, al reiniciar la BD, que se está
ocupando aprox. 1.4GB, pero en la medida que transcurre la semana se
empieza a agotar... 1.6GB, luego 1.8 GB y después 2GB y empieza a ocupar
la memoria swap. Al reiniciar la BD el sistema vuelve a ocupar los 1.4GB
En el transcurso de la semana, cuando se me empieza a agotar la memoria,
sigo ejecutando el comando
ps -eo pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid
pero me sigue saliendo que los procesos ocupan en total cerca de 1.2GB
en forma más o menos constante... es decir, se me acaba la memoria pero
no se que proceso la consume, ¿se entiende el problema? es bien raro la
verdad, no me había pasado antes.
En el ps que columnas estás sumando (rss o vsize)?

Si le tiras un
ps -eo size,rss,vsize,cmd -ww --sort=size
Eso debiera darte una idea de que es lo que /podria/ estar usando mas
swap

En todo caso.. si ya estás usando swap, o tienen poca ram o hay un
proceso con leak de memoria.
Timo
2009-06-02 20:30:52 UTC
Permalink
Tirando un tufazo, me tinca que hay un drama con la aplicación ruby que se
esta conectando a Postgres.
Yo miraria por ese lado tratando de comprobar que se estan liberando las
sesiones de la bd.
¿estas usando un pool de conexiones?
Post by Gambito
Estimados, tengo un servidor con CentOS y 2 GB. de ram. EL problema que
tengo es que poco a poco se empieza a acabar la memoria disponible hasta
ocuparla toda y tener que usar la de swap (se demora aprox. una semana en
eso). Los procesos están ocupando cerca de 1.2 GB aprox. constantemente
(lo estoy verificando con ps -eo
pid,ppid,rss,vsize,pcpu,pmem,cmd -ww --sort=pid).
Al reiniciar la BD recupero la memoria, por lo que imagino que algo malo
hay ahí, pero no he podido encontrar que. Estoy utilizando centOS 5.2
final y postgresql 8.1.11, y tengo un apache corriendo ruby on rails (con
fast-cgi) y que se conecta a la BD. En el servidor tengo corriendo además
un DNS y postfix. ¿alguna idea de que puede ser? ¿mala configuración de
postgreSQL? ¿problema con el controlador de postgreSQL para ruby? ¿alguna
maña de centos?
Muchas gracias!
Gambito
2009-06-03 16:19:49 UTC
Permalink
Post by Timo
Tirando un tufazo, me tinca que hay un drama con la aplicación ruby que se
esta conectando a Postgres.
Yo miraria por ese lado tratando de comprobar que se estan liberando las
sesiones de la bd.
¿estas usando un pool de conexiones?
no se si el controlador de postgres para ruby maneje internamente un
pool de conexiones, al menos a nivel de programación no se puede (o
desconozco la forma) de manejar las conexiones a BD a tan bajo nivel.
Pero podría ser ese el problema, veré que encuentro...
Andrés Pereira
2009-06-26 06:20:32 UTC
Permalink
Post by Gambito
Post by Timo
Tirando un tufazo, me tinca que hay un drama con la aplicación ruby
que se esta conectando a Postgres.
Yo miraria por ese lado tratando de comprobar que se estan liberando
las sesiones de la bd.
¿estas usando un pool de conexiones?
no se si el controlador de postgres para ruby maneje internamente un
pool de conexiones, al menos a nivel de programación no se puede (o
desconozco la forma) de manejar las conexiones a BD a tan bajo nivel.
Pero podría ser ese el problema, veré que encuentro...
http://pgfoundry.org/projects/pgpool/

--ap

Gambito
2009-06-03 16:19:49 UTC
Permalink
Post by Timo
Tirando un tufazo, me tinca que hay un drama con la aplicación ruby que se
esta conectando a Postgres.
Yo miraria por ese lado tratando de comprobar que se estan liberando las
sesiones de la bd.
¿estas usando un pool de conexiones?
no se si el controlador de postgres para ruby maneje internamente un
pool de conexiones, al menos a nivel de programación no se puede (o
desconozco la forma) de manejar las conexiones a BD a tan bajo nivel.
Pero podría ser ese el problema, veré que encuentro...
Loading...