ตั้งค่าการหมดอายุของแคช L1 ในตัวประมวลผลข้อความ

Apigee Edge มีการแคชเพื่อคงข้อมูลไว้ในคำขอต่างๆ เมื่อได้รับข้อมูล API ระบบจะจัดเก็บข้อมูลไว้ในแคชเป็นระยะเวลาสั้นๆ แล้วลบออก ระยะเวลาสูงสุดที่ระบบจะเก็บข้อมูลไว้ก่อนที่จะลบเรียกว่าวันหมดอายุหรือระยะเวลาที่คงอยู่ (TTL) ของแคช แคชแต่ละรายการมี TTL เริ่มต้น แต่ในบางกรณีคุณอาจต้องเปลี่ยนค่า TTL เพื่อปรับปรุงประสิทธิภาพของ API

ประเภทของแคช

ข้อมูล API จะจัดเก็บไว้ในแคช 2 ประเภท ได้แก่

  • ระดับ 1 (L1): แคชหน่วยความจำ ซึ่งเข้าถึงได้เร็วกว่าแต่มีความจุพื้นที่เก็บข้อมูลที่พร้อมใช้งานน้อยกว่า
  • ระดับ 2 (L2): แคชถาวรในพื้นที่เก็บข้อมูล Cassandra ซึ่งเข้าถึงได้ช้ากว่าแต่มีความจุพื้นที่เก็บข้อมูลมากกว่า

เมื่อรายการข้อมูลในแคช L1 ถึง TTL ของ L1 ระบบจะลบรายการดังกล่าว อย่างไรก็ตาม ระบบจะเก็บสำเนารายการไว้ในแคช L2 (ซึ่งมี TTL นานกว่าแคช L1) ซึ่ง Message Processor อื่นๆ จะยังคงเข้าถึงได้ ดูรายละเอียดเพิ่มเติมเกี่ยวกับแคชได้ที่ระดับแคชในหน่วยความจำและแคชถาวร

Max L1 TTL

ใน Edge for Private Cloud คุณสามารถตั้งค่า TTL สูงสุดของแคช L1 สำหรับ Message Processor แต่ละรายการได้โดยใช้พร็อพเพอร์ตี้ TTL สูงสุดของ L1 (conf_cache_max.l1.ttl.in.seconds) รายการในแคช L1 จะหมดอายุหลังจากถึงค่า TTL สูงสุดของ L1 และถูกลบ

หมายเหตุ

  • โดยค่าเริ่มต้น ระบบจะปิดใช้ TTL สูงสุดของ L1 (โดยมีค่าเป็น -1) ซึ่งในกรณีนี้ TTL ของรายการในแคช L1 จะกำหนดโดย การตั้งค่าการหมดอายุของนโยบาย PopulateCache (สำหรับทั้งแคช L1 และ L2)
  • TTL สูงสุดของ L1 จะมีผลก็ต่อเมื่อมีค่าน้อยกว่าการหมดอายุของแคชโดยรวม

การตั้งค่า TTL สูงสุดของ L1

คุณตั้งค่า TTL ระดับ 1 สูงสุดใน Message Processor ได้ดังนี้

  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. รีสตาร์ท Message Processor โดยทำดังนี้
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

หลักเกณฑ์ในการตั้งค่า TTL ระดับ 1 สูงสุด

เมื่อตั้งค่า TTL ระดับ 1 สูงสุด โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้

  • RPC ไม่พบข้อมูล: หากคุณสังเกตเห็นว่าการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ไม่พบข้อมูลระหว่าง Message Processor (MP) โดยเฉพาะในศูนย์ข้อมูลหลายแห่ง อาจเป็นไปได้ว่าแคช L1 มีรายการที่ล้าสมัย ซึ่งจะยังคงล้าสมัยจนกว่าจะลบออกจากแคช L1 การตั้งค่า TTL สูงสุดของ L1 เป็นค่าที่ต่ำลงจะบังคับให้นำรายการที่ไม่มีการอัปเดตออก และแทนที่ด้วยค่าใหม่จากแคช L2 เร็วขึ้น
    วิธีแก้ไข: ลด conf_cache_max.l1.ttl.in.seconds
  • ภาระงานที่มากเกินไปใน Casandra: เมื่อคุณตั้งค่า TTL สูงสุดของ L1 รายการแคช L1 จะหมดอายุบ่อยขึ้น ซึ่งจะทำให้ไม่พบแคช L1 มากขึ้นและพบแคช L2 มากขึ้น เนื่องจากแคช L2 จะถูกเรียกใช้บ่อยขึ้น Cassandra จึงต้องรับภาระงานเพิ่มขึ้น
    วิธีแก้ไข: เพิ่ม conf_cache_max.l1.ttl.in.seconds

ตามกฎทั่วไป ให้ปรับ TTL สูงสุดของ L1 เป็นค่าที่สมดุลกับความถี่ของการพลาด RPC ระหว่าง MP กับภาระงานที่อาจเกิดขึ้นใน Cassandra

เราขอแนะนำให้ตั้งค่า conf_cache_max.l1.ttl.in.seconds เป็นอย่างน้อย 180 วินาที (3 นาที) เพื่อให้การประมวลผลดำเนินไปอย่างราบรื่น