Hola Es mi primer post y ojala puedan ayudarme..Soy novato en postgres asi que necesito guía especializada. PERDONEN todo el detalle, pero he visto en los foros que generalmente se omite información que Uds, los más experimentados, necesitan para poder ayudar.... por eso detallo las características de la plataforma que en estos momentos estoy viendo...
El Server: 2 CPU: Ambas HP Quad Core 2.66 Gh RAM: 6 GB Disco: 130Gb...30 Gb (libre..).. la bd ocupa 4Gb S.O.: Linux RH 5.3 Postgres: 8.2.5 .. PostgreSql.conf ------------------------------------------------------------------------------ # CONNECTIONS AND AUTHENTICATION listen_addresses = '*' port = 5432 max_connections = 100 superuser_reserved_connections = 6 # - Memory - shared_buffers = 1500MB work_mem = 100MB sort_mem = 10240 max_fsm_pages = 409600 vacuum_cost_delay = 10 # ERROR REPORTING AND LOGGING redirect_stderr = on log_directory = 'pg_log' log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log' log_truncate_on_rotation = on log_rotation_age = 1d log_rotation_size = 0 # RUNTIME STATISTICS stats_start_collector = on stats_row_level = on # AUTOVACUUM PARAMETERS autovacuum = on # CLIENT CONNECTION DEFAULTS datestyle = 'iso, mdy' lc_messages = 'en_US.UTF-8' lc_monetary = 'en_US.UTF-8' lc_numeric = 'en_US.UTF-8' lc_time = 'en_US.UTF-8' los demás todos comentados.. asi que asumo que tienen valores default... -------------------------------------------------------------------------------------------------------------------------------------------- /etc/sysctl.conf ----------------------------------------------- net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 fs.mqueue.msgsize_max = 8192 fs.mqueue.msg_max = 400 fs.mqueue.queues_max = 256 kernel.core_pattern = /tmp/core_%e.%p ------------------------------------------------------------------------------------ Descripción: La plataforma tiene 4 módulos (en C ) que se conectan a la BD en distinta medida y esta última se usa para tareas básicas..Selects, Inserts, Updates y Deletes sin mayor lógica...algunos IFs por ahí simples.. pero nada de gran inteligencia. Hay dos tablas que se llevan la carga transaccional... La tabla más grande es de 10 Millones de registros (registro pequeño) y la tabla más chica que puede llegar a 0 registros (simula el comportamiento de una cola.. no supera los 1000 registros con harta carga). Los módulos de la plataforma toman unos archivos que se cargan cada 1 minuto, los procesan y los validan con la BD para las sentencias básicas. (En ese intervalo de 1 minuto...en 20 a 25 seg se procesan todos los archivos.. el resto permanece ocioso). Los módulos, el Motor psql y la BD se encuentran en el mismo server..... en unos meses más se tendrá el server en cluster y con una unidad de storage aparte para la BD..pero ese es otro cuento.. Desempeño actual: Lo general es que la plataforma a simple vista anda de maravillas pero una vez a la semana (hasta ahora) el cliente reporta que se le empiezan a encolar los archivos por un momento....no le causa problemas, pero si le inquieta el porque podría estar sucediendo...... yo he notado esto en ciertas ejecuciones del autovacuum...pero muy esporádicamente ... por lo general el autovacuum se ejecuta muy rápidamente... pero ocasionalmente le ha toma de 5 a 10 minutos.....(no existe coincidencia de otro proceso en ejecución cuando esto ocurre..).. al ejecutar "top" la respuesta es la siguiente: ------------------------------------------------------------------------------------------------------------------- top - 13:14:48 up 52 days, 13:07, 7 users, load average: 1.84, 1.99, 2.00 Tasks: 213 total, 1 running, 212 sleeping, 0 stopped, 0 zombie Cpu(s): 3.0%us, 0.4%sy, 0.0%ni, 94.9%id, 1.5%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 7785612k total, 7328488k used, 457124k free, 131732k buffers Swap: 6819584k total, 11892k used, 6807692k free, 6331864k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 18771 postgres 16 0 1541m 96m 93m S 17.3 1.3 106:21.57 postmaster 18685 user_ap 18 0 211m 164m 1592 S 3.3 2.2 14:29.98 modulo1 *18690 postgres 16 0 1540m 1.5g 1.5g D 3.3 19.7 12:24.10 postmaster *18626 user_ap 22 0 141m 27m 1136 S 1.7 0.4 6:04.85 modulo_no_bd 18596 user_ap 18 0 55260 1468 1144 S 1.0 0.0 2:41.35 cl_router 18640 user_ap 18 0 82924 25m 1028 S 1.0 0.3 6:00.32 modulo_no_bd 16476 postgres 15 0 2328 1088 800 R 0.3 0.0 0:00.04 top 18160 postgres 15 0 11024 1044 432 S 0.3 0.0 23:28.93 postmaster 18656 user_ap 15 0 138m 133m 1628 S 0.3 1.8 38:42.60 modulo2 18674 postgres 16 0 1540m 219m 217m S 0.3 2.9 7:07.31 postmaster 15171 postgres 15 0 10136 1604 1048 S 0.0 0.0 0:00.03 sshd 15172 postgres 15 0 2588 1376 1088 S 0.0 0.0 0:00.01 bash 18155 postgres 18 0 1539m 24m 23m S 0.0 0.3 0:00.67 postmaster 18157 postgres 15 0 10732 836 380 S 0.0 0.0 0:00.00 postmaster *18159 postgres 15 0 1540m 1.5g 1.5g S 0.0 19.9 1:08.30 postmaster 18660 postgres 16 0 1541m 1.5g 1.5g S 0.0 19.6 40:46.97 postmaster * ------------------------------------------------------------------------------------------------------- No se interpretar estos valores..por ejemplo la columna SHR .. hay 3 procesos postmaster que en esta columna tienen un valor de 1,5Gb (relacion con shared_buffers??).... y de esos 3 procesos 1 de ellos tiene un leve uso de CPU... mientras que el que tiene un 17% de CPU sólo tiene 93M en esa columna.... ese tipo de cosas necesito entenderlas. AYUDA: Bueno, con toda esta información acudo a Uds. para que me indiquen o me pregunten mas detalles... quiero saber que opinan Uds. de la configuración actual, que podría cambiar o que esta de más o sobredimensionado... no sé... soy novato.. No sé si a nivel de S.O. haya que modificar la asignación de memoria para optimizar su uso en conjunto con lo que hay en postgres..... hay algunos parámetros que me parecen altos como work_mem... pero tampoco estoy seguro al respecto.... Ahhh, lo otro..... necesito de la paciencia de alguno de Uds. para que pueda explicarme el uso de los parámetros asociados al autovacuum y que actualmente tengo comentados... quiero optimizar el uso de esta funcionalidad.. pero no se cómo... he leído la documentación pero no me queda muy claro el uso de cada uno.. Perdonen lo extenso... pero con todo esto quiero formarme una base sólida en lo que se refiera a configuración para tenerlo presente para próximas plataformas.......... Prometo que para la próxima vez que consulte haré consultas más específicas... Saludos y agradecido desde ya. Andrés Novato en postgres