Серверу Postgres не хватает места на диске

Вы просматриваете документацию Apigee Edge .
Перейдите в документацию Apigee
X.info

Симптом

На сервере PostgreSQL, где хранятся аналитические данные, закончилось место на диске.

В следующем примере видно, что диск /u01 заполнил 90% (176 ГБ/207 ГБ) дискового пространства.

$df -g

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

Сообщения об ошибках

Вы можете не увидеть никаких сообщений об ошибках, если дисковое пространство на сервере PostgreSQL не будет полностью заполнено.

Возможные причины

В таблице ниже перечислены возможные причины этой проблемы:

Причина Для
Недостаточно места на диске Пользователи Edge Private Cloud
Отсутствие предварительной обработки аналитических данных. Пользователи Edge Private Cloud

Недостаточно места на диске

Диагноз

Одной из типичных причин ошибок нехватки дискового пространства на серверах Postgres является недостаток места на диске для хранения больших объемов аналитических данных. Приведенные ниже шаги помогут вам определить, достаточно ли у вас места на диске, и предпринять соответствующие действия для решения проблемы.

  1. Определить скорость входящего API-трафика в Edge можно с помощью панели мониторинга производительности прокси-сервера Analytics.

    Пример производительности прокси-сервера, показывающий среднее количество транзакций в секунду.

  2. Рассмотрим следующий сценарий:
    1. Входящий трафик API для вашей организации составляет 22 транзакции в секунду (TPS).
      1. Это означает, что трафик API составляет 1 900 800 транзакций в день (22 * 60 * 60 * 24).
      2. Обратите внимание, что размер каждой транзакции/сообщения в Analytics составляет 1,5 Кбайт.
      3. Таким образом, каждый день генерируется 2,7 ГБ аналитических данных (1 900 800 * 1,5 тыс.).
    2. Вам необходимо хранить аналитические данные за 30 дней на ваших серверах Postgres для справки.
      1. Общий объем данных, сгенерированных за 30 дней, составляет 81 ГБ (2,7 ГБ * 30).
    3. Таким образом, для хранения аналитических данных за 30 дней при скорости трафика 22 транзакции в секунду вам потребуется 150 ГБ дискового пространства.
      1. 81 ГБ (аналитические данные) + 50 ГБ (другие данные, такие как журналы и т. д.) + 20 ГБ (дополнительное буферное пространство) = 150 ГБ.
  3. Если на вашем диске недостаточно места, например, менее 150 ГБ (как в приведенном выше примере), то у вас недостаточно места для хранения аналитических данных.

Разрешение

Выделите достаточно места на диске сервера PostgreSQL.

Отсутствие предварительной обработки аналитических данных.

Диагноз

С увеличением API-трафика к Edge объем аналитических данных, хранящихся в базе данных Postgres, также будет расти. Объем аналитических данных, которые можно хранить в базе данных Postgres, ограничен объемом доступного дискового пространства в системе.

Следовательно, вы не можете продолжать сохранять дополнительные аналитические данные в базе данных Postgres, не выполнив одно из следующих действий:

  1. Увеличьте дисковое пространство.

    Это не масштабируемый вариант, поскольку мы не можем постоянно добавлять дисковое пространство, так как оно ограничено и дорого стоит.

  2. Удалите данные, хранящиеся сверх требуемого интервала.

    Это предпочтительное решение, поскольку оно позволяет гарантировать регулярное удаление данных, которые больше не требуются.

Если вы не будете регулярно вручную или с помощью cron-задания удалять необработанные данные, то объем аналитических данных будет постоянно увеличиваться, что в конечном итоге может привести к нехватке места на диске в системе.

Разрешение

Чтобы удалить данные, срок хранения которых превышает требуемый:

  1. Определите интервал хранения, то есть продолжительность, в течение которой вы хотите хранить аналитические данные в базе данных PostgreSQL.
  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 . По умолчанию: Нет. Если Нет, скрипт запросит подтверждение перед удалением данных из родительского факта. Установите значение Да, если скрипт очистки автоматизирован.

Для получения более подробной информации см. данные Pruning Analytics .

Если проблема не исчезнет, ​​обратитесь в службу поддержки Apigee Edge .