Postgres 서버 디스크 공간 부족

현재 Apigee Edge 문서가 표시되고 있습니다.
Apigee X 문서로 이동
정보

증상

애널리틱스 데이터가 포함된 Postgres 서버의 디스크 공간이 부족합니다.

다음 예에서 디스크 /u01이 디스크 공간의 90% (176GB/207GB)를 채우는 것을 확인할 수 있습니다.

$df -g

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

오류 메시지

Postgres 서버의 디스크 공간이 완전히 채워지지 않으면 오류 메시지가 표시되지 않을 수 있습니다.

가능한 원인

다음 표에는 이 문제의 가능한 원인이 나와 있습니다.

원인 대상:
디스크 공간 부족 Edge Private Cloud 사용자
애널리틱스 데이터 프루닝 부족 Edge Private Cloud 사용자

디스크 공간 부족

진단

Postgres 서버에서 디스크 공간 오류가 발생하는 일반적인 원인 중 하나는 대량의 분석 데이터를 저장하기에 충분한 디스크 공간이 없기 때문입니다. 아래에 제공된 단계를 통해 디스크 공간이 충분한지 확인하고 문제를 해결하기 위한 적절한 조치를 취할 수 있습니다.

  1. 애널리틱스 프록시 성능 대시보드를 참조하여 Edge로 수신되는 API 트래픽의 속도를 확인합니다.

    평균 TPS를 보여주는 프록시 실적 샘플

  2. 다음 시나리오를 고려하세요.
    1. 조직에 수신되는 API 트래픽은 22TPS (초당 트랜잭션)입니다.
      1. 즉, API 트래픽은 하루 1,900,800회 (22 * 60 * 60 * 24)의 트랜잭션입니다.
      2. 애널리틱스에서 각 거래/메시지의 크기는 1,500바이트입니다.
      3. 따라서 매일 2.7GB의 애널리틱스 데이터 (1,900,800 * 1.5K)가 생성됩니다.
    2. 참조용으로 Postgres 서버에 30일 분량의 애널리틱스 데이터를 보관해야 합니다.
      1. 30일 동안 생성된 총 데이터 = 81GB (2.7GB * 30)
    3. 따라서 22TPS의 트래픽 속도로 30일 분량의 애널리틱스 데이터를 저장하려면 150GB의 디스크 공간이 필요합니다.
      1. 81GB (애널리틱스 데이터) + 50GB (로그 등 기타 데이터) + 20GB (추가 버퍼 공간) = 150GB
  3. 위의 예시 시나리오에 따르면 시스템의 디스크 공간이 150GB 미만 등 시스템 공간이 작은 경우 애널리틱스 데이터를 저장하기에 충분한 디스크 공간이 없는 것입니다.

해상도

Postgres 서버 머신에 적절한 디스크 공간을 추가합니다.

애널리틱스 데이터 프루닝 부족

진단

Edge로 전송되는 API 트래픽이 증가함에 따라 Postgres 데이터베이스에 저장되는 분석 데이터의 양도 증가하게 됩니다. Postgres 데이터베이스에 저장할 수 있는 분석 데이터 양은 시스템에서 사용할 수 있는 디스크 공간에 따라 제한됩니다.

따라서 다음 작업 중 하나를 수행하지 않으면 Postgres 데이터베이스에 추가 분석 데이터를 계속 저장할 수 없습니다.

  1. 디스크 공간을 추가합니다.

    이 방법은 제한적이고 비용이 많이 들기 때문에 디스크 공간을 계속 추가할 수 없으므로 확장 가능한 옵션이 아닙니다.

  2. 필요한 보관 간격을 초과하여 데이터를 프루닝합니다.

    더 이상 필요하지 않은 데이터를 일정한 간격으로 삭제할 수 있으므로 선호되는 솔루션입니다.

주기적으로 데이터를 수동으로 또는 크론 작업을 사용하여 프루닝하지 않으면 분석 데이터의 양이 지속적으로 증가하여 시스템의 디스크 공간이 부족해질 수 있습니다.

해상도

필요한 보관 기간을 벗어나는 데이터를 프루닝하려면 다음 안내를 따르세요.

  1. Postgres 데이터베이스의 애널리틱스 데이터를 보관할 보관 간격을 결정합니다.
  2. 다음 명령어를 실행하여 특정 조직 및 환경의 데이터를 프루닝합니다.
    /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]
    

스크립트에는 다음과 같은 옵션이 있습니다.

  • Delete-from-parent-fact 기본값 : 아니요. 보관 일수가 지난 데이터도 상위 팩트 테이블에서 삭제됩니다.
  • Skip-confirmation-prompt. 기본값: 아니요. '아니요'인 경우 스크립트에서 상위 팩트에서 데이터를 삭제하기 전에 확인 메시지를 표시합니다. 삭제 스크립트가 자동으로 작성된 경우 '예'로 설정합니다.

자세한 내용은 애널리틱스 데이터 프루닝을 참고하세요.

문제가 계속되면 Apigee Edge 지원팀에 문의하세요.