SlideShare una empresa de Scribd logo
““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)
PostgreSQL
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

PDF
DOCX
Instalacion y configuracion de postgre sql
ODP
Así que pusiste MongoDB. Dime ¿cómo lo administras?
PPTX
Sistemas gestores de bases de dato
DOCX
Pxe
PDF
Tarea 5 sistemas operativos ii
DOCX
Pxe
PDF
03 - Creacion de un Sitio - El Soporte
Instalacion y configuracion de postgre sql
Así que pusiste MongoDB. Dime ¿cómo lo administras?
Sistemas gestores de bases de dato
Pxe
Tarea 5 sistemas operativos ii
Pxe
03 - Creacion de un Sitio - El Soporte

La actualidad más candente (20)

PDF
Instalacion de oracle database 10g. en ubuntu
PDF
Aprendiendo REDIS en 20 minutos
DOCX
Configurar un servicio dhcp en centos 7
PDF
Boletin de ejercicios_2
PDF
Sistemas operativos
DOCX
Manual de uso_de_squid
PPTX
Comandos Powershell Backup Restore SPSite
ODP
Taller Archlinux - 1ª Sesión
PDF
Rails Against The Machine
PPTX
PPTX
Ansible DevOps Day Peru 2016
DOCX
Booteo de windows 7 y Centos 7
KEY
Aplicaciones web altamente escalables con Redis
DOCX
Realizar un repositorio local en centos 7
PDF
Bulma 441
PPSX
PDF
Cómo Usar VPS Panel de Control (kvm)
PDF
Construyendo Aplicaciones Web con PHP + LUA + REDIS
PDF
Redis no es solo una caché
DOCX
Crear un usuario virtual en el servidor vsftpd con centos 7
Instalacion de oracle database 10g. en ubuntu
Aprendiendo REDIS en 20 minutos
Configurar un servicio dhcp en centos 7
Boletin de ejercicios_2
Sistemas operativos
Manual de uso_de_squid
Comandos Powershell Backup Restore SPSite
Taller Archlinux - 1ª Sesión
Rails Against The Machine
Ansible DevOps Day Peru 2016
Booteo de windows 7 y Centos 7
Aplicaciones web altamente escalables con Redis
Realizar un repositorio local en centos 7
Bulma 441
Cómo Usar VPS Panel de Control (kvm)
Construyendo Aplicaciones Web con PHP + LUA + REDIS
Redis no es solo una caché
Crear un usuario virtual en el servidor vsftpd con centos 7
Publicidad

Similar a PostgreSQL (20)

ODP
Monitoreo tunning postgresql_2011
PPT
Características de las placas madre
PPT
Características de las placas madre
PPTX
Entendiendo el sistema de almacenamiento de datos y SQL Server
PDF
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
PPT
File System Management
PDF
Afinamiento de la_base_de_datos
 
PDF
Clusters Beowulf
DOCX
Disco maestro y esclavo
PDF
Procedimiento de instalación de cent os 6
PPT
LaserVaultBackup (LVB) en Español
PPTX
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
PPTX
Consideraciones de hardware para SQL Server
DOCX
Requerimientos de instalación
PPT
Disco Duro
PPT
Disco Duro
PPTX
Modotexto
PDF
InstalacióN De Samba En Linux
PDF
Abf leccion 06
Monitoreo tunning postgresql_2011
Características de las placas madre
Características de las placas madre
Entendiendo el sistema de almacenamiento de datos y SQL Server
Almacenamiento en disco: mejora de la velocidad y de la seguridad - Juan Piernas
File System Management
Afinamiento de la_base_de_datos
 
Clusters Beowulf
Disco maestro y esclavo
Procedimiento de instalación de cent os 6
LaserVaultBackup (LVB) en Español
Formación en Almacenamiento, Open Storage Soluciones Low Cost.
Consideraciones de hardware para SQL Server
Requerimientos de instalación
Disco Duro
Disco Duro
Modotexto
InstalacióN De Samba En Linux
Abf leccion 06
Publicidad

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)
  • 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