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

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

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

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

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

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

TTL สูงสุด L1

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

Notes:

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

กำลังตั้งค่า L1 TTL สูงสุด

คุณสามารถตั้งค่า 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

หลักเกณฑ์สำหรับการตั้งค่า Max L1 TTL

เมื่อตั้งค่า Max L1 TTL โปรดคำนึงถึงหลักเกณฑ์ต่อไปนี้

  • ไม่พบ RPC: หากคุณพบว่าการเรียกใช้โพรซีเยอร์ระยะไกล (RPC) ขาดช่วงระหว่างตัวประมวลผลข้อความ (MPC) โดยเฉพาะในศูนย์ข้อมูลหลายแห่ง เป็นไปได้ว่าแคช 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 นาที) เพื่อให้การประมวลผลเป็นไปอย่างราบรื่น