Uso de pg_profile_pro
Escenarios
pg_profile_pro es un plugin utilizado para monitorear el rendimiento y el estado de instancias de RDS for PostgreSQL DB. Proporciona informes de datos de monitoreo para sentencias SQL, tablas, índices, funciones, transacciones y operaciones de vacío para detectar problemas de rendimiento existentes o potenciales de bases de datos.
Basado en la vista pg_stat_statements de PostgreSQL, este plugin crea estadísticas históricas en su instancia de base de datos y genera muestras de estadísticas. Las muestras de estadísticas periódicas se utilizan para generar informes de monitoreo, lo que ayuda a identificar actividades que consumen recursos.
Este complemento no está soportado temporalmente debido a sus defectos. Estará abierto a usted después de que se corrijan los defectos. Le pedimos disculpas por el inconveniente.
Restricciones
Solo RDS for PostgreSQL 12 soporta este complemento.
Procedimiento
- Ejecute el siguiente comando para conectarse a la base de datos postgres como usuario root y obtener la lista de ejemplo.
# psql --host=<RDS_ADDRESS> --port=<DB_PORT>--dbname=postgres --username=root -c "select * from profile.show_samples();"
Tabla 1 Descripción de parámetro Parámetro
Descripción
RDS_ADDRESS
Indica la dirección IP de la instancia de base de datos RDS.
DB_PORT
Indica el puerto de la instancia de base de datos RDS.
Introduzca la contraseña del usuario root cuando se le solicite.
Password for user root:
La información que aparecerá en pantalla será similar a la información siguiente:
sample | sample_time | dbstats_reset | clustats_reset | archstats_reset --------+------------------------+---------------+----------------+----------------- 1 | 2021-04-02 17:15:49+08 | | | 2 | 2021-04-02 17:25:57+08 | | | 3 | 2021-04-02 17:36:04+08 | | | (3 rows)
Utilice el resultado real de la consulta.
- Conéctese a la base de datos postgres como usuario root y obtenga el informe utilizando cualquiera de los métodos siguientes:
Método 1: Obtener el informe basado en la identificación de la muestra.
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=postgres --username=root -Aqtc "select profile.get_report(<sample_start_id>, <sample_end_id>)" -o <filename>.htmlTabla 2 Descripción de parámetro Parámetro
Descripción
RDS_ADDRESS
Indica la dirección IP de la instancia de base de datos RDS.
DB_PORT
Indica el puerto de la instancia de base de datos RDS.
sample_start_id
Indica el ID de ejemplo inicial contenido en el informe.
sample_end_id
Indica el ID de muestra final contenido en el informe.
filename
Indica el nombre del archivo donde se va a guardar el contenido del informe. Puede especificar una ruta relativa o una ruta absoluta para el archivo.
El valor de sample_start_id debe ser menor que el de sample_end_id. De lo contrario, no se puede generar el informe.
Método 2: Obtener el informe especificando un período de tiempo.
# psql --host=<RDS_ADDRESS> --port=<DB_PORT> --dbname=postgres --username=root -Aqtc "select profile.get_report(tstzrange('sample_start_time', 'sample_end_time'))" -o <filename>.html
Tabla 3 Descripción de parámetro Parámetro
Descripción
RDS_ADDRESS
Indica la dirección IP de la instancia de base de datos RDS.
DB_PORT
Indica el puerto de la instancia de base de datos RDS.
sample_start_time
Indica la hora de inicio de muestra contenida en el informe.
sample_end_time
Indica la hora de finalización de muestra contenida en el informe.
filename
Indica el nombre del archivo donde se va a guardar el contenido del informe. Puede especificar una ruta relativa o una ruta absoluta para el archivo.
Conservar los valores predeterminados de los siguientes parámetros:
- Período de muestreo (unidad: minuto): 10
- Período de retención de la muestra (unidad: día): 7
- Número de registros mostrados: 20
Configuración de parámetros
Parámetro |
Valor predeterminado |
Reinicio necesario |
Funciones |
Observaciones |
---|---|---|---|---|
pg_profile_pro.topn |
20 |
No |
Controla el número de objetos (como sentencias y relaciones) que se deben informar en cada informe de ordenación. |
Este parámetro afecta al tamaño de la muestra. Si desea mostrar más objetos en el informe, es necesario conservar más objetos en el ejemplo. |
pg_profile_pro.max_sample_age |
3 |
No |
Indica el período de retención de la muestra, en días. Las muestras cuyo período de retención haya excedido el valor de este parámetro se eliminarán automáticamente durante el siguiente muestreo. |
La granularidad mínima del parámetro es día. |
pg_profile_pro.track_sample_timings |
off |
No |
Controla si pg_profile_pro rastrea el tiempo de muestreo detallado. |
Después de establecer este parámetro en on, se registra el tiempo consumido por cada muestreo, lo que aumenta el uso de espacio. |
pg_profile_pro.period |
3600 |
No |
Indica el período de muestreo, en segundos. Controla el periodo de muestreo. |
Este parámetro afecta al tamaño de la muestra. Cuanto más corto es el período de muestreo, más objetos se reserva el informe debido a más muestras en unidad de tiempo. |
pg_profile_pro.enable |
on |
No |
Controla si el complemento recopila muestras.
|
Si este parámetro se establece en off, no se puede generar el último informe, pero se puede ver el informe histórico. |
Los valores predeterminados de la tabla son para la última versión de RDS y pueden variar en otras versiones.
Ejemplo de informe
Un informe consta de título, contenido y tablas.
- Título
El título contiene los ID de ejemplo inicial y final, la versión del kernel de pg_profile_pro, el nombre del servidor y el intervalo del informe.
Figura 1 Título del informe
- Contenidos
Cada capa de contenido está vinculada a una tabla. Puede obtener una visión general de todas las tablas del contenido o hacer clic en los enlaces para ver cada tabla.
En la siguiente figura se muestra un ejemplo de contenido.
- Tablas
Las tablas muestran el rendimiento de la base de datos desde diferentes dimensiones y enfoques.
- Cada tabla va seguida de sugerencias sobre los focos.
- En cada tabla, puede mover el puntero del ratón al título de una columna para ver los comentarios (tanto en chino como en inglés).