Parámetros de inicialización de PostgreSQL
Los parámetros de configuración de PostgreSQL se configuran en el archivo postgresql.conf. Los cambios para la mayoría de estas configuraciones requieren reiniciar el cluster de base de datos de PostgreSQL.
Estas son algunas recomendaciones para los cambios que podría realizar en PostgreSQL para mejorar su rendimiento con ArcSDE.
La configuración y los parámetros pueden variar según el sistema operativo. Asegúrese de leer la documentación de PostgreSQL para obtener información sobre el uso y la configuración de estos parámetros.
max_connections
El valor predeterminado de max_connections para PostgreSQL es de 100. Si utiliza un servicio de ArcSDE para las conexiones, 1 conexión gsrvr equivale a 2 conexiones de PostgreSQL. Si utiliza una conexión directa, las conexiones son uno a uno.
Al decidir cómo configurar el parámetro max_connections de PostgreSQL, tenga en cuenta la cantidad de conexiones que utiliza la aplicación de conexión y cuántas aplicaciones cliente distintas se pueden conectar por vez. Por ejemplo, si un usuario, que utiliza la conexión de servicio de ArcSDE, se conecta a la base de datos desde ArcMap y ArcCatalog, son dos conexiones para cada una de las aplicaciones, lo que da un total de cuatro conexiones para ese sólo usuario. Si, además, ese mismo usuario ejecuta una secuencia de comandos de geoprocesamiento, esa secuencia de comandos mantiene dos conexiones durante todo el tiempo que dure su ejecución.
Además, tenga en cuenta cualquier aplicación Web que esté conectada a la base de datos. Para ArcIMS, las conexiones se cuentan por subproceso, por servidor espacial. Por defecto, cada tipo de servidor utiliza dos subprocesos. Algunos tipos de servicio utilizan más de un tipo de servidor; por lo tanto, la cantidad de conexiones es la cantidad de servicios multiplicada por la cantidad de subprocesos. Para las aplicaciones Web de ArcGIS Server, las conexiones se cuentan por instancias de servicio; la cantidad de conexiones es igual a la cantidad de instancias que se están ejecutando. (Tenga en cuenta que una aplicación Web puede utilizar más de un servicio; por lo tanto, la cantidad de conexiones es la cantidad de servicios multiplicada por la cantidad de instancias en ejecución). Para aplicaciones personalizadas, deberá determinar cuántas conexiones está utilizando cada aplicación y dividir ese número por la cantidad estimada de conexiones necesarias.
Además, debe tenerse en cuenta la cantidad de conexiones que separa para los superusuarios a través del parámetro de PostgreSQL para conexiones super_user_reserved. Cuando la cantidad de conexiones concurrentes alcanza el resultado de restar el valor de max_connections menos el de superuser_reserved_connections, se aceptan conexiones nuevas para los superusuarios. Si mantiene la configuración predeterminada para los dos parámetros, significa que una vez que se realizó la conexión concurrente número 97, sólo los superusuarios se pueden conectar con las tres conexiones restantes.
Si altera este valor de parámetro, reinicie el cluster de base de datos de PostgreSQL. Además, tenga en cuenta que si aumenta este valor, es posible que deba aumentar el valor de shared_buffers, ya que el valor mínimo depende de la cantidad de max_connections.
shared_buffers
El parámetro shared_buffers establece la cantidad de memoria que utiliza el servidor de base de datos de PostgreSQL para los búfers de memoria compartida. El valor predeterminado es 32 MB, pero puede ser menor si la configuración del kernel de UNIX no lo admite. Esta configuración debe ser de 128 KB o superior y al menos de 16 KB multiplicados por el valor de configuración de max_connections. La documentación de PostgreSQL indica que debe configurar este parámetro en un valor significativamente mayor que el valor mínimo para lograr un buen rendimiento. Se recomiendan varias decenas de megabytes para instalaciones de producción.
Si altera este parámetro, debe reiniciar el cluster de la base de datos.
max_fsm_pages y max_fsm_relations
Estos dos parámetros controlan el tamaño del mapa de espacio libre compartido, que rastrea las ubicaciones del espacio sin utilizar en la base de datos. Max_fsm_pages establece el número máximo de páginas de disco para las que se rastrará el espacio libre en el mapa de espacio libre compartido. Cada página consume seis bytes de memoria compartida. Esta configuración debe ser como mínimo 16 veces el valor de max_fsm_relations. El valor predeterminado se selecciona a través de initdb, según la cantidad de memoria disponible, y puede variar entre páginas de 20 KB y 200 KB. Max_fsm_relations establece la cantidad máxima de relaciones para las cuales se rastreará el espacio libre en el mapa de espacio libre compartido. El valor predeterminado es de mil relaciones. Estos dos parámetros sólo pueden configurarse cuando se inicia el servidor.
Puede ejecutar un comando VACUUM VERBOSE de amplitud de base de datos que le sirve para determinar si la configuración actual es correcta. Las últimas líneas del VACUUM VERBOSE muestran mensajes que le ayudarán a determinarlo. Un mensaje de AVISO también se imprime durante esta operación si la configuración actual es muy baja.
wal_buffers
El parámetro wal_buffers especifica la cantidad de memoria que se utiliza en la memoria compartida para los datos de registro de escritura anticipada (WAL). El valor predeterminado es 64 KB. Sólo debe establecer este valor lo suficientemente grande para mantener la cantidad de datos de WAL generados por una transacción típica, ya que los datos se escriben en disco en cada transacción confirmada. Este parámetro sólo se puede configurar cuando se inicia el servidor.
Aumentar los valores de los parámetros precedentes puede provocar que PostgreSQL solicite más memoria compartida de System V que la que permite la configuración predeterminada del sistema operativo Linux. Consulte el tema "Administrar recursos de kernel" en la documentación de PostgreSQL para obtener información sobre cómo cambiar la asignación de la memoria compartida.