Buena partición para el servidor Postgresql

Buena partición para el servidor Postgresql

Estoy configurando un servidor postgresql dedicado en ubuntu, usando RAID 1 de 500 GB. Me pregunto si alguien podría compartir un esquema de partición simple pero efectivo que pueda usar, ya que soy bastante nuevo en todo esto.

Respuesta1

No obtendrá muchos beneficios de rendimiento al particionar con un solo RAID grande (aunque evitará grandes dolores de cabeza por el llenado).

En general, solo usaría los valores predeterminados del sistema operativo a menos que se sienta realmente cómodo dimensionando las cosas usted mismo y solo se asegure de tener un espacio de buen tamaño donde desea crear el directorio PGDATA. Las sugerencias de partición del sistema operativo a continuación son las que uso en los sistemas FreeBSD; probablemente también estén bien para Ubuntu.

 /                    1GB (or larger)
 [SWAP]               2GB or 2*RAM Size
 /var                 10GB
 /usr                 10GB
 /usr/local           15GB
 /tmp                 2GB
 /home                10GB ("Big enough for home directories")
 -------------------------------------------------------------
 (OS Total)           50 GB
 [PGDATA]             Postgres data directory ("The rest")

(Es posible que Ubuntu no utilice /usr/local; de lo contrario, puede incorporar parte de eso en /usr)


Re: Partición específica de Postgres, si está haciendo esto en un solo RAID-1, simplemente haga que [PGDATA] sea lo suficientemente grande como para contener su base de datos y registros de transacciones, además de algo de espacio de crecimiento.

Si se trata de una caja de producción y espera mucha actividad de base de datos, lo que desea hacer es separarla en un grupo de RAID-1 para separar la actividad del disco (volumen muy alto, incluso puede considerar dividirlo entre controladores). ).

Oracle tiene muchos documentos técnicos excelentes sobre esto y recomiendo encarecidamente robar sus diseños: no son simples, pero son efectivos. El esquema de partición que uso (cada uno en su propio par de discos) es:

[PGDATA]               5-10GB
[PGDATA]/pg_xlog       5-10GB (More if you expect lots of transaction logs)
[PGDATA]/base          Big enough for your database
[PGDATA]/[Tablespace]  Optional - Separate out "high-traffic" table spaces
[PGDATA]/xlog_archive  Big enough for archived transaction logs & dumps

Respuesta2

Tengo un servidor postgresql con una actividad interesante entre 600 y 1000 transacciones por segundo y mi partición es algo como esto:

/      - 10GB
swap   - 15GB (I have 8GB RAM)
/var   - 20GB
/home  - 60GB (don't ask why, but I think 60gb is too much for home)
pgdata - 100 GB

De acuerdo con sus datos, sería interesante profundizar en la partición de tablas, para evitar escanear una tabla enorme en caso de que necesite una pequeña parte de los datos. Por ejemplo, uso tablas particionadas para almacenar registros, por lo que tengo una tabla maestra llamadaregistrosy tablas mensuales llamadasAAAAMM_logsheredado del maestro. Luego utilizo una función de activación para colocar cada registro en la tabla particionada correspondiente.

información relacionada