El servidor de Postgres se queda sin espacio en el disco

Estás viendo la documentación de Apigee Edge.
Ir a la documentación de Apigee X.
info

Síntoma

El servidor de Postgres que contiene los datos de Analytics se quedó sin espacio en el disco.

En el siguiente ejemplo, puedes ver que el disco /u01 llenó el 90% (176 GB/207 GB) del espacio en el disco.

$df -g

Filesystem Size User Avail Use% Mounted on
/dev/mapper/sysvg-syslv09 207G 176G 176G 21G 90% /u01

Mensajes de error

Es posible que no observes ningún mensaje de error, a menos que el espacio en el disco esté completamente lleno en el servidor de Postgres.

Causas posibles

En la siguiente tabla, se enumeran las posibles causas de este problema:

Causa Para
Espacio en disco inadecuado Usuarios de la nube privada de Edge
Falta de poda de datos de Analytics Usuarios de la nube privada de Edge

Espacio en disco inadecuado

Diagnóstico

Una de las causas típicas de los errores de espacio en el disco en los servidores de Postgres es que no tienes espacio en el disco adecuado para almacenar los grandes volúmenes de datos de estadísticas. Los pasos que se proporcionan a continuación te ayudarán a determinar si tienes suficiente espacio en el disco o no, y a tomar las medidas adecuadas para abordar el problema.

  1. Para determinar la tasa de tráfico de API entrante a Edge, consulta el panel de rendimiento del proxy de Analytics.

    Ejemplo de rendimiento del proxy que muestra el TPS promedio

  2. Considera la siguiente situación:
    1. El tráfico de API entrante para tu organización es de 22 TPS (transacciones por segundo).
      1. Esto significa que el tráfico de API es de 1,900,800 transacciones por día (22 * 60 * 60 * 24).
      2. Ten en cuenta que cada transacción o mensaje en Analytics tiene un tamaño de 1.5 K bytes.
      3. Por lo tanto, cada día genera 2.7 GB de datos de Analytics (1,900,800 * 1.5 K).
    2. Debes conservar 30 días de datos de Analytics en tus servidores de Postgres como referencia.
      1. Los datos totales generados durante 30 días = 81 GB (2.7 GB * 30)
    3. Por lo tanto, para almacenar 30 días de datos de Analytics a una tasa de tráfico de 22 TPS, debes tener 150 GB de espacio en el disco.
      1. 81 GB (datos de Analytics) + 50 GB (otros datos, como registros, etc.) + 20 GB (espacio de búfer adicional ) = 150 GB.
  3. Si tienes menos espacio en el disco en el sistema, es decir, menos de 150 GB de espacio (según la situación de ejemplo anterior), no tienes espacio en el disco adecuado para almacenar los datos de Analytics data.

Solución

Agrega espacio en el disco adecuado a la máquina del servidor de Postgres.

Falta de poda de datos de Analytics

Diagnóstico

Con el aumento del tráfico de API a Edge, también aumentará la cantidad de datos de estadísticas que se almacenan en la base de datos de Postgres. La cantidad de datos de estadísticas que se pueden almacenar en la base de datos de Postgres está limitada por la cantidad de espacio en el disco disponible en el sistema.

Por lo tanto, no puedes seguir almacenando datos de estadísticas adicionales en la base de datos de Postgres sin realizar una de las siguientes acciones:

  1. Agrega más espacio en el disco.

    Esta no es una opción escalable, ya que no podemos seguir agregando más espacio en el disco, ya que es limitado y costoso.

  2. Poda los datos más allá del intervalo de retención requerido.

    Esta es la solución preferida, ya que puedes asegurarte de que los datos que ya no son necesarios se quiten a intervalos regulares.

Si no podas los datos a intervalos regulares de forma manual o con un trabajo cron, la cantidad de datos de estadísticas aumentará continuamente y, finalmente, puede que te quedes sin espacio en el disco en el sistema.

Solución

Para podar los datos que están más allá del intervalo de retención requerido, haz lo siguiente:

  1. Determina el intervalo de retención, es decir, la duración durante la que deseas conservar los datos de Analytics en la base de datos de Postgres.
  2. Ejecuta el siguiente comando para podar datos de una organización y un entorno específicos:
    /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql pg-data-purge
      org env number_of_days_to_retain [Delete-from-parent-fact - N/Y] [Skip-confirmation-prompt - N/Y]
    

La secuencia de comandos tiene las siguientes opciones:

  • Delete-from-parent-fact Default : No. También borrará los datos más antiguos que los días de retención de la tabla de hechos superior.
  • Skip-confirmation-prompt. Default: No. Si es No, la secuencia de comandos solicitará confirmación antes de borrar los datos del hecho superior. Establécelo en Sí si la secuencia de comandos de purga está automatizada.

Para obtener más información, consulta Cómo podar datos de Analytics.

Si el problema persiste, comunícate con el equipo de asistencia de Apigee Edge.