Este manual sólo pretende ser una guía de referencia, únicamente para la configuración de su servidor de base de datos, simplemente he tomado estos datos de mis experiencias, el uso de la misma no implica responsabilidad alguna para el autor de éste, cabe destacar que es necesario hacerle seguimiento al comportamiento en ejecución de la base de datos PostgreSQL, Verificando el tamaño de la Base de Datos, número de conexiones, complejidades de las consultas. Es mejor seguir algunas reglas en la asignación, y monitoreando el servidor (particularmente vigilar la vista pg_statio) , revisar los log de la SGDB para determinar ajustes, verificar el tipo de hardware que se está utilizando. A continuación te presento un cuadro con los posibles valores a modificar en el archivo postgresql.cof
Entonación postgres 8.1
ojo: los valores entre parentesis no van, es solo una referencia del uso del recurso, los valores para un servidor de 1 gb son todas las amarillas, para un servidor con 2gb son todas las verdes
memoria 1gb 2Gb 4Gb Fórmula
shared_buffers 13107(100mb) 26214(200mb) 52429(400mb) 1024*1024*nGb/10/8
work_mem 41943(40mb) 83886(80mb) 167772(160mb) 1024*1024*nGb*4/100
maintenance_work_mem 98304(96mb) 131072(128mb) 262144(256mb) 1024*nMb
max_fsm_pages 120000 120000 120000
wal_buffers 96 128 26
effective_cache_size 85196(0.65gb) 196608(1.5gb) 393216(3gb) 1024*1024/8 *nGb(1/3 mem)
random_page_cost scsi =1 o 2, resto 3 o 4
Adicionalmente a esto debemos cambiar algunos parámetros en el kernel.
cambios /etc/sysctl.conf
kernel.shmmax = 1073741824
kernel.sem = 250 32000 100 128
/etc/security/limits.conf
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
/etc/pam.d/login
session required /lib/security/pam_limits.so
profile
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
