SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
““Fundamentos para Servidores PostgreSQL”Fundamentos para Servidores PostgreSQL”
Gilberto Castillo
GUP.cu
* Consideraciones para el Hardware
* Consideraciones para el Sistema Operativo
* Consideraciones para PostgreSQL
Tabla de Contenido
Consideraciones para el Hardware
-Procesador: Multi-core de última generación o-Procesador: Multi-core de última generación o
4 vCPU. Mínimo 4 core4 vCPU. Mínimo 4 core
-Memoria: Mínimo 8 Gb RAM-Memoria: Mínimo 8 Gb RAM
-Discos: SATA con 3 Mb Cache. Mínimo 2 o 4-Discos: SATA con 3 Mb Cache. Mínimo 2 o 4
Discos de alta Velocidad (preferible SCSI yDiscos de alta Velocidad (preferible SCSI y
SAS)SAS)
-Espacio en disco: Mínimo 250 Gb-Espacio en disco: Mínimo 250 Gb
-Velocidad del disco: 7 K, 10 K o 15 K-Velocidad del disco: 7 K, 10 K o 15 K
-Conectividad: 1 Gb-Conectividad: 1 Gb
-Controladora: RAID 1+0 / 0+1 por hardware-Controladora: RAID 1+0 / 0+1 por hardware
con batería.con batería.
Materiales y métodos
Materiales y métodos
ConsideracionesConsideraciones para el Sistema Operativopara el Sistema Operativo
-FreeBSD x64-FreeBSD x64
-OpenBSD x64-OpenBSD x64
-RedHat x64-RedHat x64
-Centos x64-Centos x64
-Solaris x64-Solaris x64
-Debian x64-Debian x64
Sistema de archivo:Sistema de archivo:
-XFS (VFS, ZFS o familia)-XFS (VFS, ZFS o familia)
max_connections:max_connections: Número de sesionesNúmero de sesiones
simultáneassimultáneas
[no debe ser mayor que las conexiones[no debe ser mayor que las conexiones
necesarias, incluso cuando está inactiva, en lanecesarias, incluso cuando está inactiva, en la
mayoría de los casos una conexión pasaría másmayoría de los casos una conexión pasaría más
tiempo esperando en IDLE. Una buena fórmulatiempo esperando en IDLE. Una buena fórmula
es "número de hilos + número de procesadores +es "número de hilos + número de procesadores +
cantidad de servicio"]cantidad de servicio"]
work_mem:work_mem: Cantidad máxima de memoria queCantidad máxima de memoria que
se utilizará para los resultados intermedios, talesse utilizará para los resultados intermedios, tales
como tablas hashcomo tablas hash
[se puede calcular por cada subconsulta, por lo[se puede calcular por cada subconsulta, por lo
que una consulta con 5 HASHJOINS podríaque una consulta con 5 HASHJOINS podría
costar 5 * work_mem. Las distintas sesionescostar 5 * work_mem. Las distintas sesiones
consumen esta cantidad. (una razón para seguirconsumen esta cantidad. (una razón para seguir
bajando max_connections)]bajando max_connections)]
Consideraciones para PostgreSQL
shared_buffers:shared_buffers: Cantidad de memoria dedicadaCantidad de memoria dedicada
a espacio de búfer 'clavado'.a espacio de búfer 'clavado'.
[establecerlo en 1/4...1/2 acerca de toda la[establecerlo en 1/4...1/2 acerca de toda la
memoria "libre" disponible]memoria "libre" disponible]
effective_cache_size:effective_cache_size: Cantidad de memoria queCantidad de memoria que
se supone será utilizada por LRU del OS.se supone será utilizada por LRU del OS.
[establecer effective_cache_size a toda la[establecer effective_cache_size a toda la
memoria "libre" disponible]memoria "libre" disponible]
random_page_cost:random_page_cost: Estimación del costeEstimación del coste
relativo de búsquedas en disco.relativo de búsquedas en disco.
[costo de posicionamiento + leectura de disco. Es[costo de posicionamiento + leectura de disco. Es
con respecto a la "sequential_disk_cost", que escon respecto a la "sequential_disk_cost", que es
1. El valor por defecto es (4) demasiado alto para1. El valor por defecto es (4) demasiado alto para
las máquinas modernas y almacenamiento enlas máquinas modernas y almacenamiento en
red, normalmente se puede bajar entre 2 y 1.x]red, normalmente se puede bajar entre 2 y 1.x]
Consideraciones para PostgreSQL
maintenance_work_mem:maintenance_work_mem: Usada enUsada en
operaciones del tipo VACUUM, ANALYZE,operaciones del tipo VACUUM, ANALYZE,
CREATE INDEX, ALTER TABLE, ADDCREATE INDEX, ALTER TABLE, ADD
FOREIGN KEY.FOREIGN KEY.
[Su valor dependerá mucho del tamaño de[Su valor dependerá mucho del tamaño de
nuestras bases de datos. En un servidor con 8nuestras bases de datos. En un servidor con 8
Gb de memoria, podemos usar 512 Mb comoGb de memoria, podemos usar 512 Mb como
valor inicial]valor inicial]
autovacuum:autovacuum: Permitir se limpie nuestra base dePermitir se limpie nuestra base de
datos según el plan internodatos según el plan interno
[nos olvidamos de tener que programar esta[nos olvidamos de tener que programar esta
tarea]tarea]
password_encryption:password_encryption: Si activamos estaSi activamos esta
opción, al usar CREATE USER WITHopción, al usar CREATE USER WITH
PASSWORD, pero sin ponerle encrypted, nosPASSWORD, pero sin ponerle encrypted, nos
encryptara el password de todas formas,encryptara el password de todas formas,
evitando así el tener passwords en texto plano.evitando así el tener passwords en texto plano.
Consideraciones para PostgreSQL
ssl:ssl: Establecer conexiones encryptadas alEstablecer conexiones encryptadas al
servidorservidor
[Para poder activar esta opción, tendremos que[Para poder activar esta opción, tendremos que
generar un certificado y configurar un par degenerar un certificado y configurar un par de
cosas en el archivo pg_hba.conf]cosas en el archivo pg_hba.conf]
Tablespaces en discos distintos:Tablespaces en discos distintos:
-tablas muy grandes-tablas muy grandes
-tablas particionadas-tablas particionadas
-indices grandes-indices grandes
-carpeta pg_xlog-carpeta pg_xlog
Consideraciones para PostgreSQL
Monitorea todo:Monitorea todo:
-Uso de los procesadores (y sus cores)-Uso de los procesadores (y sus cores)
-Discos que más escriben-Discos que más escriben
-Discos que más se leen-Discos que más se leen
-Uso de la memoria-Uso de la memoria
-Horas picos o de alto impacto para el servidor-Horas picos o de alto impacto para el servidor
Usa las herramientas:Usa las herramientas:
-nagios, munin, etc.-nagios, munin, etc.
Consideraciones para PostgreSQL
¿Preguntas?

Más contenido relacionado

La actualidad más candente

Instalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntuInstalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntuAlexis Madrigal Ortega
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosGonzalo Chacaltana
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativosRafma10
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteJuan Astudillo
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machineguestae6a05
 
Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016Raul Hugo
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAlberto Gimeno
 
Cómo Usar VPS Panel de Control (kvm)
Cómo Usar VPS Panel de Control (kvm)Cómo Usar VPS Panel de Control (kvm)
Cómo Usar VPS Panel de Control (kvm)Hostname Ltda.
 
Construyendo Aplicaciones Web con PHP + LUA + REDIS
Construyendo Aplicaciones Web con PHP + LUA + REDISConstruyendo Aplicaciones Web con PHP + LUA + REDIS
Construyendo Aplicaciones Web con PHP + LUA + REDISGonzalo Chacaltana
 
Redis no es solo una caché
Redis no es solo una cachéRedis no es solo una caché
Redis no es solo una cachéAlex Casquete
 
Crear un usuario virtual en el servidor vsftpd con centos 7
Crear un usuario virtual en el servidor vsftpd con centos 7Crear un usuario virtual en el servidor vsftpd con centos 7
Crear un usuario virtual en el servidor vsftpd con centos 7santiago Ramirez Ramirez
 

La actualidad más candente (20)

Instalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntuInstalacion de oracle database 10g. en ubuntu
Instalacion de oracle database 10g. en ubuntu
 
Aprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutosAprendiendo REDIS en 20 minutos
Aprendiendo REDIS en 20 minutos
 
Configurar un servicio dhcp en centos 7
Configurar un servicio dhcp en centos 7Configurar un servicio dhcp en centos 7
Configurar un servicio dhcp en centos 7
 
Boletin de ejercicios_2
Boletin de ejercicios_2Boletin de ejercicios_2
Boletin de ejercicios_2
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
Manual de uso_de_squid
Manual de uso_de_squidManual de uso_de_squid
Manual de uso_de_squid
 
Comandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSiteComandos Powershell Backup Restore SPSite
Comandos Powershell Backup Restore SPSite
 
Taller Archlinux - 1ª Sesión
Taller Archlinux - 1ª SesiónTaller Archlinux - 1ª Sesión
Taller Archlinux - 1ª Sesión
 
Rails Against The Machine
Rails Against The MachineRails Against The Machine
Rails Against The Machine
 
Actividad n° 04
Actividad n° 04Actividad n° 04
Actividad n° 04
 
Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016Ansible DevOps Day Peru 2016
Ansible DevOps Day Peru 2016
 
Booteo de windows 7 y Centos 7
Booteo de windows 7 y Centos 7 Booteo de windows 7 y Centos 7
Booteo de windows 7 y Centos 7
 
Aplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con RedisAplicaciones web altamente escalables con Redis
Aplicaciones web altamente escalables con Redis
 
Realizar un repositorio local en centos 7
Realizar un repositorio local en centos 7Realizar un repositorio local en centos 7
Realizar un repositorio local en centos 7
 
Bulma 441
Bulma 441Bulma 441
Bulma 441
 
Las cronicas de redis
Las cronicas de redisLas cronicas de redis
Las cronicas de redis
 
Cómo Usar VPS Panel de Control (kvm)
Cómo Usar VPS Panel de Control (kvm)Cómo Usar VPS Panel de Control (kvm)
Cómo Usar VPS Panel de Control (kvm)
 
Construyendo Aplicaciones Web con PHP + LUA + REDIS
Construyendo Aplicaciones Web con PHP + LUA + REDISConstruyendo Aplicaciones Web con PHP + LUA + REDIS
Construyendo Aplicaciones Web con PHP + LUA + REDIS
 
Redis no es solo una caché
Redis no es solo una cachéRedis no es solo una caché
Redis no es solo una caché
 
Crear un usuario virtual en el servidor vsftpd con centos 7
Crear un usuario virtual en el servidor vsftpd con centos 7Crear un usuario virtual en el servidor vsftpd con centos 7
Crear un usuario virtual en el servidor vsftpd con centos 7
 

Similar a Configurar PostgreSQL

Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Lennin Caro
 
Características de las placas madre
Características de las placas madreCaracterísticas de las placas madre
Características de las placas madreramospaco
 
Características de las placas madre
Características de las placas madreCaracterísticas de las placas madre
Características de las placas madreramospaco
 
Entendiendo el sistema de almacenamiento de datos y SQL Server
Entendiendo el sistema de almacenamiento de datos y SQL ServerEntendiendo el sistema de almacenamiento de datos y SQL Server
Entendiendo el sistema de almacenamiento de datos y SQL ServerJoseph Lopez
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasLenin Hernandez
 
File System Management
File System ManagementFile System Management
File System ManagementJuan Sánchez
 
Afinamiento de la_base_de_datos
Afinamiento de la_base_de_datosAfinamiento de la_base_de_datos
Afinamiento de la_base_de_datosUTN
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulfsrcid
 
Disco maestro y esclavo
Disco maestro y esclavoDisco maestro y esclavo
Disco maestro y esclavocardil
 
Procedimiento de instalación de cent os 6
Procedimiento de instalación de cent os 6Procedimiento de instalación de cent os 6
Procedimiento de instalación de cent os 6Isaac Gómez M
 
LaserVaultBackup (LVB) en Español
LaserVaultBackup (LVB) en EspañolLaserVaultBackup (LVB) en Español
LaserVaultBackup (LVB) en EspañolBrad Jensen
 
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.Strelia Technology Services
 
Consideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerConsideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerEduardo Castro
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalaciónPrincezitha Ruiz
 
Disco Duro
Disco DuroDisco Duro
Disco Duroskapunk
 
Disco Duro
Disco DuroDisco Duro
Disco Duroskapunk
 
Modotexto
ModotextoModotexto
Modotextotania
 
Abf leccion 06
Abf leccion 06Abf leccion 06
Abf leccion 06victdiazm
 

Similar a Configurar PostgreSQL (20)

Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011Monitoreo tunning postgresql_2011
Monitoreo tunning postgresql_2011
 
Características de las placas madre
Características de las placas madreCaracterísticas de las placas madre
Características de las placas madre
 
Características de las placas madre
Características de las placas madreCaracterísticas de las placas madre
Características de las placas madre
 
Entendiendo el sistema de almacenamiento de datos y SQL Server
Entendiendo el sistema de almacenamiento de datos y SQL ServerEntendiendo el sistema de almacenamiento de datos y SQL Server
Entendiendo el sistema de almacenamiento de datos y SQL Server
 
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan PiernasAlmacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
 
File System Management
File System ManagementFile System Management
File System Management
 
Afinamiento de la_base_de_datos
Afinamiento de la_base_de_datosAfinamiento de la_base_de_datos
Afinamiento de la_base_de_datos
 
Clusters Beowulf
Clusters BeowulfClusters Beowulf
Clusters Beowulf
 
Disco maestro y esclavo
Disco maestro y esclavoDisco maestro y esclavo
Disco maestro y esclavo
 
Procedimiento de instalación de cent os 6
Procedimiento de instalación de cent os 6Procedimiento de instalación de cent os 6
Procedimiento de instalación de cent os 6
 
LaserVaultBackup (LVB) en Español
LaserVaultBackup (LVB) en EspañolLaserVaultBackup (LVB) en Español
LaserVaultBackup (LVB) en Español
 
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
 
Squid lpt
Squid lptSquid lpt
Squid lpt
 
Consideraciones de hardware para SQL Server
Consideraciones de hardware para SQL ServerConsideraciones de hardware para SQL Server
Consideraciones de hardware para SQL Server
 
Requerimientos de instalación
Requerimientos de instalaciónRequerimientos de instalación
Requerimientos de instalación
 
Disco Duro
Disco DuroDisco Duro
Disco Duro
 
Disco Duro
Disco DuroDisco Duro
Disco Duro
 
Modotexto
ModotextoModotexto
Modotexto
 
InstalacióN De Samba En Linux
InstalacióN De Samba En LinuxInstalacióN De Samba En Linux
InstalacióN De Samba En Linux
 
Abf leccion 06
Abf leccion 06Abf leccion 06
Abf leccion 06
 

Configurar PostgreSQL

  • 1. ““Fundamentos para Servidores PostgreSQL”Fundamentos para Servidores PostgreSQL” Gilberto Castillo GUP.cu
  • 2. * Consideraciones para el Hardware * Consideraciones para el Sistema Operativo * Consideraciones para PostgreSQL Tabla de Contenido
  • 3. Consideraciones para el Hardware -Procesador: Multi-core de última generación o-Procesador: Multi-core de última generación o 4 vCPU. Mínimo 4 core4 vCPU. Mínimo 4 core -Memoria: Mínimo 8 Gb RAM-Memoria: Mínimo 8 Gb RAM -Discos: SATA con 3 Mb Cache. Mínimo 2 o 4-Discos: SATA con 3 Mb Cache. Mínimo 2 o 4 Discos de alta Velocidad (preferible SCSI yDiscos de alta Velocidad (preferible SCSI y SAS)SAS) -Espacio en disco: Mínimo 250 Gb-Espacio en disco: Mínimo 250 Gb -Velocidad del disco: 7 K, 10 K o 15 K-Velocidad del disco: 7 K, 10 K o 15 K -Conectividad: 1 Gb-Conectividad: 1 Gb -Controladora: RAID 1+0 / 0+1 por hardware-Controladora: RAID 1+0 / 0+1 por hardware con batería.con batería.
  • 5. Materiales y métodos ConsideracionesConsideraciones para el Sistema Operativopara el Sistema Operativo -FreeBSD x64-FreeBSD x64 -OpenBSD x64-OpenBSD x64 -RedHat x64-RedHat x64 -Centos x64-Centos x64 -Solaris x64-Solaris x64 -Debian x64-Debian x64 Sistema de archivo:Sistema de archivo: -XFS (VFS, ZFS o familia)-XFS (VFS, ZFS o familia)
  • 6.
  • 7. max_connections:max_connections: Número de sesionesNúmero de sesiones simultáneassimultáneas [no debe ser mayor que las conexiones[no debe ser mayor que las conexiones necesarias, incluso cuando está inactiva, en lanecesarias, incluso cuando está inactiva, en la mayoría de los casos una conexión pasaría másmayoría de los casos una conexión pasaría más tiempo esperando en IDLE. Una buena fórmulatiempo esperando en IDLE. Una buena fórmula es "número de hilos + número de procesadores +es "número de hilos + número de procesadores + cantidad de servicio"]cantidad de servicio"] work_mem:work_mem: Cantidad máxima de memoria queCantidad máxima de memoria que se utilizará para los resultados intermedios, talesse utilizará para los resultados intermedios, tales como tablas hashcomo tablas hash [se puede calcular por cada subconsulta, por lo[se puede calcular por cada subconsulta, por lo que una consulta con 5 HASHJOINS podríaque una consulta con 5 HASHJOINS podría costar 5 * work_mem. Las distintas sesionescostar 5 * work_mem. Las distintas sesiones consumen esta cantidad. (una razón para seguirconsumen esta cantidad. (una razón para seguir bajando max_connections)]bajando max_connections)] Consideraciones para PostgreSQL
  • 8. shared_buffers:shared_buffers: Cantidad de memoria dedicadaCantidad de memoria dedicada a espacio de búfer 'clavado'.a espacio de búfer 'clavado'. [establecerlo en 1/4...1/2 acerca de toda la[establecerlo en 1/4...1/2 acerca de toda la memoria "libre" disponible]memoria "libre" disponible] effective_cache_size:effective_cache_size: Cantidad de memoria queCantidad de memoria que se supone será utilizada por LRU del OS.se supone será utilizada por LRU del OS. [establecer effective_cache_size a toda la[establecer effective_cache_size a toda la memoria "libre" disponible]memoria "libre" disponible] random_page_cost:random_page_cost: Estimación del costeEstimación del coste relativo de búsquedas en disco.relativo de búsquedas en disco. [costo de posicionamiento + leectura de disco. Es[costo de posicionamiento + leectura de disco. Es con respecto a la "sequential_disk_cost", que escon respecto a la "sequential_disk_cost", que es 1. El valor por defecto es (4) demasiado alto para1. El valor por defecto es (4) demasiado alto para las máquinas modernas y almacenamiento enlas máquinas modernas y almacenamiento en red, normalmente se puede bajar entre 2 y 1.x]red, normalmente se puede bajar entre 2 y 1.x] Consideraciones para PostgreSQL
  • 9. maintenance_work_mem:maintenance_work_mem: Usada enUsada en operaciones del tipo VACUUM, ANALYZE,operaciones del tipo VACUUM, ANALYZE, CREATE INDEX, ALTER TABLE, ADDCREATE INDEX, ALTER TABLE, ADD FOREIGN KEY.FOREIGN KEY. [Su valor dependerá mucho del tamaño de[Su valor dependerá mucho del tamaño de nuestras bases de datos. En un servidor con 8nuestras bases de datos. En un servidor con 8 Gb de memoria, podemos usar 512 Mb comoGb de memoria, podemos usar 512 Mb como valor inicial]valor inicial] autovacuum:autovacuum: Permitir se limpie nuestra base dePermitir se limpie nuestra base de datos según el plan internodatos según el plan interno [nos olvidamos de tener que programar esta[nos olvidamos de tener que programar esta tarea]tarea] password_encryption:password_encryption: Si activamos estaSi activamos esta opción, al usar CREATE USER WITHopción, al usar CREATE USER WITH PASSWORD, pero sin ponerle encrypted, nosPASSWORD, pero sin ponerle encrypted, nos encryptara el password de todas formas,encryptara el password de todas formas, evitando así el tener passwords en texto plano.evitando así el tener passwords en texto plano. Consideraciones para PostgreSQL
  • 10. ssl:ssl: Establecer conexiones encryptadas alEstablecer conexiones encryptadas al servidorservidor [Para poder activar esta opción, tendremos que[Para poder activar esta opción, tendremos que generar un certificado y configurar un par degenerar un certificado y configurar un par de cosas en el archivo pg_hba.conf]cosas en el archivo pg_hba.conf] Tablespaces en discos distintos:Tablespaces en discos distintos: -tablas muy grandes-tablas muy grandes -tablas particionadas-tablas particionadas -indices grandes-indices grandes -carpeta pg_xlog-carpeta pg_xlog Consideraciones para PostgreSQL
  • 11. Monitorea todo:Monitorea todo: -Uso de los procesadores (y sus cores)-Uso de los procesadores (y sus cores) -Discos que más escriben-Discos que más escriben -Discos que más se leen-Discos que más se leen -Uso de la memoria-Uso de la memoria -Horas picos o de alto impacto para el servidor-Horas picos o de alto impacto para el servidor Usa las herramientas:Usa las herramientas: -nagios, munin, etc.-nagios, munin, etc. Consideraciones para PostgreSQL