메시지 프로세서에서 L1 캐시 만료 설정

Apigee Edge는 요청 간 데이터 지속성을 위한 캐싱을 제공합니다. API 데이터가 수신되면 잠시 캐시에 저장되었다가 삭제됩니다. 데이터가 삭제되기 전에 보관되는 최대 시간을 캐시의 만료 또는 TTL (수명)이라고 합니다. 각 캐시에는 기본 TTL이 있지만 경우에 따라 API 성능을 향상시키기 위해 TTL 값을 변경해야 할 수 있습니다.

캐시 유형

API 데이터는 두 가지 유형의 캐시에 저장됩니다.

  • 수준 1 (L1): 인메모리 캐시로, 액세스 속도가 빠르지만 사용 가능한 저장용량이 적습니다.
  • 수준 2 (L2): Cassandra 데이터 스토어의 영구 캐시로, 액세스 속도가 느리지만 사용 가능한 스토리지 용량이 더 많습니다.

L1 캐시의 데이터 항목이 L1 TTL에 도달하면 삭제됩니다. 하지만 항목의 사본은 L2 캐시 (L1 캐시보다 TTL이 더 김)에 보관되며, 다른 메시지 프로세서에서 계속 액세스할 수 있습니다. 캐시에 대한 자세한 내용은 인메모리 및 영구 캐시 수준을 참조하세요.

최대 L1 TTL

프라이빗 클라우드용 Edge에서는 최대 L1 TTL 속성 (conf_cache_max.l1.ttl.in.seconds)을 사용하여 각 메시지 프로세서의 최대 L1 캐시 TTL을 설정할 수 있습니다. L1 캐시의 항목은 최대 L1 TTL 값에 도달하면 만료되고 삭제됩니다.

참고:

  • 기본적으로 최대 L1 TTL은 사용 중지되어 있으며 (값 -1), 이 경우 L1 캐시의 항목 TTL은 PopulateCache 정책의 만료 설정 (L1 및 L2 캐시 모두)에 의해 결정됩니다.
  • 최대 L1 TTL은 값이 전체 캐시 만료보다 작은 경우에만 효과가 있습니다.

최대 L1 TTL 설정

다음과 같이 메시지 프로세서에서 최대 L1 TTL을 설정할 수 있습니다.

  1. 편집기에서 구성 파일 /opt/apigee/customer/application/message-processor.properties을 엽니다. 파일이 없으면 만듭니다.
  2. 최대 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

최대 L1 TTL 설정 가이드라인

최대 L1 TTL을 설정할 때는 다음 가이드라인에 유의하세요.

  • RPC 누락: 메시지 프로세서 (MP) 간에, 특히 여러 데이터 센터에서 리모트 프로시져 콜 (RPC) 누락이 발생하는 경우 L1 캐시에 오래된 항목이 있을 수 있으며, 이러한 항목은 L1 캐시에서 삭제될 때까지 오래된 상태로 유지됩니다. 최대 L1 TTL을 더 낮은 값으로 설정하면 오래된 항목이 더 빨리 삭제되고 L2 캐시의 새로운 값으로 대체됩니다.
    해결 방법: conf_cache_max.l1.ttl.in.seconds를 줄입니다.
  • Casandra의 과도한 부하: 최대 L1 TTL 값을 설정하면 L1 캐시 항목이 더 자주 만료되어 L1 캐시 부적중이 더 많이 발생하고 L2 캐시 적중이 더 많이 발생합니다. L2 캐시가 더 자주 적중되므로 Cassandra에 부하가 증가합니다.
    해결 방법: conf_cache_max.l1.ttl.in.seconds를 늘립니다.

일반적으로 최대 L1 TTL을 MP 간 RPC 누락 빈도와 Cassandra의 잠재적 부하 간의 균형을 맞추는 값으로 조정합니다.

처리가 원활하게 실행되도록 conf_cache_max.l1.ttl.in.seconds 값을 최소 180초 (3분)로 설정하는 것이 좋습니다.