Установите срок действия кэша L1 в процессоре сообщений

Apigee Edge обеспечивает кэширование для сохранения данных между запросами. Когда данные API получены, они сохраняются в кеше в течение короткого периода времени, а затем удаляются. Максимальное время хранения фрагмента данных перед удалением называется сроком действия или временем жизни (TTL) кэша. Каждый кеш имеет значение TTL по умолчанию, но в некоторых случаях вам может потребоваться изменить значение TTL, чтобы улучшить производительность API.

Типы кэша

Данные API хранятся в двух типах кеша:

  • Уровень 1 (L1): кэш в памяти, который имеет более быстрый доступ, но меньшую доступную емкость.
  • Уровень 2 (L2): постоянный кеш в хранилище данных Cassandra, доступ к которому медленнее, но больше доступной емкости.

Когда запись данных в кэше L1 достигает TTL L1, она удаляется. Однако копия записи хранится в кэше L2 (у которого TTL больше, чем у кэша L1), где она остается доступной для других процессоров сообщений. Дополнительные сведения о кеше см. в разделе Уровни кэша в памяти и постоянного кэша .

Макс. L1 ТТЛ

В Edge для частного облака вы можете установить максимальный TTL кэша L1 для каждого процессора сообщений, используя свойство Max L1 TTL ( conf_cache_max.l1.ttl.in.seconds ). Срок действия записи в кэше L1 истечет после достижения максимального значения TTL L1, и она будет удалена.

Примечания:

  • По умолчанию максимальный срок жизни L1 отключен (со значением -1 ), и в этом случае срок жизни записи в кэше L1 определяется настройками срока действия политики PopulateCache (как для кэша L1, так и для кэша L2).
  • Макс. L1 TTL имеет эффект только в том случае, если его значение меньше общего срока действия кэша.

Настройка максимального TTL L1

Вы можете установить Max L1 TTL на процессоре сообщений следующим образом:

  1. Откройте файл конфигурации /opt/apigee/customer/application/message-processor.properties в редакторе. Если файл не существует, создайте его.
  2. Установите для свойства Max L1 TTL нужное значение:
    conf_cache_max.l1.ttl.in.seconds = 180

    Мы рекомендуем значение 180 секунд.

  3. Убедитесь, что файл свойств принадлежит пользователю «apigee»:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Перезапустите обработчик сообщений:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Рекомендации по настройке максимального TTL L1

При настройке Max L1 TTL учитывайте следующие рекомендации:

  • Промахи RPC. Если вы заметили промахи удаленного вызова процедур (RPC) между процессорами сообщений (MP) — особенно в нескольких центрах обработки данных — возможно, в кэше L1 есть устаревшие записи, которые останутся устаревшими до тех пор, пока не будут удалены из кэша L1. Установка более низкого значения Max L1 TTL приводит к более быстрому удалению устаревших записей и их замене свежими значениями из кэша L2.
    Решение: Уменьшите conf_cache_max.l1.ttl.in.seconds .
  • Чрезмерная нагрузка на Casandra: если вы установите значение Max L1 TTL, записи в кэше L1 будут истечь чаще, что приведет к большему количеству промахов в кэше L1 и большему количеству обращений к кэшу L2. Поскольку кеш L2 будет поражаться чаще, Cassandra будет испытывать повышенную нагрузку.
    Решение: увеличьте conf_cache_max.l1.ttl.in.seconds

Как правило, настраивайте Max L1 TTL на значение, которое уравновешивает частоту промахов RPC между MP с потенциальной нагрузкой на Cassandra.

Мы рекомендуем установить значение conf_cache_max.l1.ttl.in.seconds как минимум на 180 секунд (3 минуты), чтобы обеспечить бесперебойную обработку.