ส่วนนี้จะอธิบายถึงงานบำรุงรักษาเป็นระยะสำหรับ Cassandra
การบํารุงรักษาเอนโทรปี
โหนดวงแหวน Apache Cassandra ต้องมีการบำรุงรักษาเป็นระยะเพื่อให้แน่ใจว่าโหนดทั้งหมดสอดคล้องกัน ในการดำเนินการบำรุงรักษานี้ ให้ใช้คำสั่งต่อไปนี้
apigee-service apigee-cassandra apigee_repair -pr
Apigee แนะนำสิ่งต่อไปนี้เมื่อเรียกใช้คำสั่งนี้
- เรียกใช้บนโหนด Cassandra ทุกโหนด (ในทุกภูมิภาคหรือศูนย์ข้อมูล)
โดยให้เรียกใช้ทีละโหนด เพื่อให้แน่ใจว่าโหนดทั้งหมดในวงแหวนสอดคล้องกัน การเรียกใช้งานการซ่อมบนโหนดหลายโหนดพร้อมกันอาจส่งผลเสียต่อประสิทธิภาพของ Cassandra
หากต้องการตรวจสอบว่างานซ่อมแซมในโหนดเสร็จสมบูรณ์หรือไม่ ให้ดูรายการที่มี UUID ของเซสชันการซ่อมล่าสุดและวลี "เซสชันเสร็จสมบูรณ์" ในไฟล์
system.log
ของโหนด ตัวอย่างของรายการบันทึกมีดังนี้INFO [AntiEntropySessions:1] 2015-03-01 10:02:56,245 RepairSession.java (line 282) [repair #2e7009b0-c03d-11e4-9012-99a64119c9d8] session completed successfully" Ref: https://support.datastax.com/hc/en-us/articles/204226329-How-to-check-if-a-scheduled-nodetool-repair-ran-successfully
- ทำงานในช่วงที่มีภาระงานค่อนข้างต่ำ (เครื่องมือนี้สร้างภาระงานจำนวนมากให้กับระบบ)
- เรียกใช้อย่างน้อยทุกๆ 7 วันเพื่อขจัดปัญหาที่เกี่ยวข้องกับ "ลืมลบ" ของ Cassandra
- เรียกใช้บนโหนดต่างๆ ในวันที่ต่างกัน หรือตั้งเวลาเพื่อให้มีเวลาหลายชั่วโมงระหว่างการเรียกใช้แต่ละโหนด
- ใช้ตัวเลือก
-pr
(ช่วงพาร์ติชัน) เพื่อระบุช่วงพาร์ติชันหลักของโหนดเท่านั้น
หากเปิดใช้การตรวจสอบสิทธิ์ JMX สำหรับ Cassandra คุณต้องใส่ชื่อผู้ใช้และรหัสผ่านเมื่อเรียกใช้ nodetool
เช่น
apigee-service apigee-cassandra apigee_repair -u username -pw password -pr
นอกจากนี้ คุณยังเรียกใช้คำสั่งต่อไปนี้เพื่อตรวจสอบตัวเลือกที่รองรับของ apigee_repair:
ได้ด้วย
apigee-service apigee-cassandra apigee_repair -h
หมายเหตุ: apigee_repair
คือ Wrapper สำหรับการซ่อมเครื่องมือโหนดของ Cassandra ซึ่งจะดำเนินการตรวจสอบเพิ่มเติมก่อนดำเนินการซ่อมแซมของ Cassandra
สำหรับข้อมูลเพิ่มเติม โปรดดูแหล่งข้อมูลต่อไปนี้
การบำรุงรักษาไฟล์บันทึก
บันทึก Cassandra จะเก็บไว้ในไดเรกทอรี /opt/apigee/var/log/cassandra
ในแต่ละโหนด โดยค่าเริ่มต้น คุณจะสร้างไฟล์บันทึกได้สูงสุด 50 ไฟล์ แต่ละไฟล์มีขนาดไม่เกิน 20 MB เมื่อบันทึกถึงขีดจำกัดเก่าแล้ว ระบบจะลบบันทึกเก่าเมื่อสร้างบันทึกใหม่
หากพบว่าไฟล์บันทึก Cassandra ใช้พื้นที่มากเกินไป คุณจะแก้ไขปริมาณที่จัดสรรไว้สำหรับไฟล์บันทึกได้โดยแก้ไขการตั้งค่า log4j
- แก้ไข
/opt/apigee/customer/application/cassandra.properties
เพื่อตั้งค่าพร็อพเพอร์ตี้ต่อไปนี้ หากไม่มีไฟล์ดังกล่าว ให้สร้างขึ้นมาโดยทำดังนี้conf_logback_maxfilesize=20MB # max file size conf_logback_maxbackupindex=50 # max open files
- รีสตาร์ท Cassandra โดยใช้คำสั่งต่อไปนี้
/opt/apigee/apigee-service/bin/apigee-service apigee-cassandra restart
การบำรุงรักษาพื้นที่ในดิสก์
คุณควรตรวจสอบการใช้งานดิสก์ Cassandra อย่างสม่ำเสมอเพื่อให้แน่ใจว่าดิสก์อย่างน้อย 50 เปอร์เซ็นต์จะมีพื้นที่ว่าง หากการใช้งานดิสก์เพิ่มขึ้นเกิน 50 เปอร์เซ็นต์ เราขอแนะนำให้เพิ่มพื้นที่ว่างในดิสก์เพื่อลดเปอร์เซ็นต์ที่ใช้งานอยู่
Cassandra จะดำเนินการต่อไปนี้โดยอัตโนมัติเพื่อลดการใช้งานดิสก์ของตัวเอง
- การลบโทเค็นการตรวจสอบสิทธิ์เมื่อโทเค็นหมดอายุ อย่างไรก็ตาม การเพิ่มพื้นที่ว่างในดิสก์ที่โทเค็นใช้อาจใช้เวลา 2-3 สัปดาห์ ทั้งนี้ขึ้นอยู่กับการกำหนดค่าของคุณ หากการลบอัตโนมัติไม่เพียงพอที่จะรักษาพื้นที่ในดิสก์ให้เพียงพอ โปรดติดต่อทีมสนับสนุนเพื่อสอบถามเกี่ยวกับการลบโทเค็นด้วยตนเองเพื่อกู้คืนพื้นที่
การบีบอัดข้อมูล เราขอแนะนำให้เปลี่ยนกลยุทธ์การอัดแน่นในคีย์สเปซเป็น
LeveledCompactionStrategy
ซึ่งมีกลยุทธ์การใช้งานดิสก์ที่ดีกว่าค่าเริ่มต้นSizeTieredCompactionStrategy
ดู กลยุทธ์การปรับแต่งระดับ
หมายเหตุ: เมื่อ Cassandra บีบอัดข้อมูล รอบการทำงานและหน่วยความจำของ CPU ค่อนข้างมาก แต่การใช้งานทรัพยากรควรกลับสู่สภาวะปกติเมื่อการบีบอัดเสร็จสมบูรณ์
คุณเรียกใช้คำสั่ง 'Nodetool compactionstats'
ในแต่ละโหนดเพื่อตรวจสอบว่ามีการบีบอัดข้อมูลอยู่หรือไม่ เอาต์พุตของ compactionstats
จะแจ้งให้คุณทราบหากมีการบีบอัดรอดำเนินการและกำหนดเวลาในการดำเนินการให้เสร็จสมบูรณ์โดยประมาณ