การตั้งค่าเครื่องมือเชื่อมต่อ

Google Cloud Search SDK มีพารามิเตอร์การกำหนดค่าที่ Google มีให้หลายรายการที่เครื่องมือเชื่อมต่อทั้งหมดใช้ การทราบวิธีปรับการตั้งค่าเหล่านี้จะช่วยเพิ่มประสิทธิภาพในการจัดทำดัชนีข้อมูลได้อย่างมาก คำแนะนำนี้แสดงรายการปัญหาหลายอย่างที่อาจปรากฏขึ้นระหว่างการจัดทำดัชนีและการตั้งค่าที่ใช้ในการแก้ไขปัญหา

อัตราการส่งข้อมูลการจัดทำดัชนีต่ำสำหรับ FullTraversalConnector

ตารางต่อไปนี้แสดงการตั้งค่าการกำหนดค่าเพื่อปรับปรุงอัตราการส่งข้อมูลสำหรับ FullTraversalConnector

การเกริ่นนำ คำอธิบาย ค่าเริ่มต้น เปลี่ยนการกำหนดค่าเพื่อลอง
traverse.partitionSize จำนวน ApiOperation() ที่จะประมวลผลเป็นกลุ่มก่อนที่จะดึงข้อมูล APIOperation() เพิ่มเติม SDK รอให้พาร์ติชันปัจจุบันประมวลผลก่อนดึงข้อมูลรายการเพิ่มเติม การตั้งค่านี้ขึ้นอยู่กับปริมาณหน่วยความจำที่มี พาร์ติชันขนาดเล็ก เช่น 50 หรือ 100 ต้องใช้หน่วยความจำน้อยกว่า แต่ต้องรอในนามของ SDK มากกว่า 50 หากมีหน่วยความจำจำนวนมาก ให้ลองเพิ่ม partitionSize เป็น 1, 000 เป็นอย่างน้อย
batch.batchSize จำนวนคำขอที่รวมกันเป็นกลุ่ม ในตอนท้ายของการแบ่งพาร์ติชัน SDK จะรอให้คำขอแบบกลุ่มทั้งหมดประมวลผลจากพาร์ติชัน ส่วนชุดขนาดใหญ่กว่านั้นจะต้องรอนานขึ้น 10 ลองลดขนาดกลุ่มลง
batch.maxActiveBatches จำนวนแบตช์ที่เรียกใช้พร้อมกันที่อนุญาต 20 หากคุณลด batchSize คุณควรชน maxActiveBatches ตามสูตรนี้

maxActiveBatches = (partitionSize / batchSize) + 50 ตัวอย่างเช่น หาก partititionSize คือ 1, 000 และ batchSize คือ 5 maxActiveBatches ก็ควรจะเป็น 250 ส่วน 50 ที่เพิ่มเข้ามาคือบัฟเฟอร์สำหรับคำขอลองอีกครั้ง การเพิ่มขึ้นนี้จะทำให้เครื่องมือเชื่อมต่อจัดกลุ่มคำขอทั้งหมดได้โดยไม่ต้องบล็อก
traverse.threadPoolSize จำนวนเทรดที่เครื่องมือเชื่อมต่อสร้างเพื่อให้ประมวลผลพร้อมกันได้ ตัวซ้ำตัวเดียวจะดึงข้อมูลการดำเนินการ (โดยทั่วไปคือ RepositoryDoc ออบเจ็กต์) แบบต่อเนื่อง แต่กระบวนการเรียก API พร้อมกันโดยใช้จำนวนเทรด threadPoolSize รายการ ชุดข้อความแต่ละรายการจะประมวลผล 1 รายการต่อครั้ง แต่ค่าเริ่มต้น 50 รายการจะประมวลผลพร้อมกันได้สูงสุด 50 รายการเท่านั้น และจะใช้เวลาประมาณ 4 วินาทีในการประมวลผลแต่ละรายการ (รวมถึงคำขอการจัดทำดัชนี) 50 ลองเพิ่ม threadPoolSize ขึ้นคูณ 10

สุดท้าย ให้พิจารณาใช้เมธอด setRequestMode() เพื่อเปลี่ยนโหมดคำขอ API (ASYNCHRONOUS หรือ SYNCHRONOUS)

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของไฟล์การกำหนดค่าได้ที่พารามิเตอร์การกำหนดค่าที่ Google มีให้

อัตราการส่งข้อมูลการจัดทำดัชนีต่ำสำหรับ ListTraversalConnector

โดยค่าเริ่มต้น เครื่องมือเชื่อมต่อที่ใช้งาน ListTraversalConnnector จะใช้ Traverser เดี่ยวเพื่อจัดทำดัชนีรายการ หากต้องการเพิ่มอัตราการส่งข้อมูลการจัดทำดัชนี คุณอาจสร้างเครื่องมือข้ามผ่านหลายตัวในแต่ละรายการด้วยการกำหนดค่าของตนเอง โดยมุ่งเน้นที่สถานะรายการที่เจาะจง (NEW_ITEM, MODIFIED และอื่นๆ) ตารางต่อไปนี้แสดงการตั้งค่าการกำหนดค่าเพื่อปรับปรุงอัตราการส่งข้อมูล

การเกริ่นนำคำอธิบายค่าเริ่มต้นเปลี่ยนการกำหนดค่าเพื่อลอง
repository.traversers = t1, t2, t3, ...สร้างตัวข้ามตำแหน่งอย่างน้อย 1 รายการโดยที่ t1, t2, t3, ... เป็นชื่อที่ไม่ซ้ำกันของแต่ละรายการ Traverser ที่มีชื่อแต่ละรายการจะมีชุดการตั้งค่าของตัวเอง ซึ่งจะระบุด้วยชื่อที่ไม่ซ้ำกันของ Traverser เช่น traversers.t1.hostload และ traversers.t2.hostloadข้ามผ่าน 1 ตัวใช้การตั้งค่านี้เพื่อเพิ่มเครื่องมือข้ามผ่านเพิ่มเติม
traversers.t1.hostload = nระบุจำนวนเทรด n ที่จะใช้จัดทำดัชนีรายการพร้อมกัน5ทดสอบการปรับแต่ง n ตามปริมาณโหลดที่คุณต้องการใส่ในที่เก็บ เริ่มด้วยค่า 10 ขึ้นไป
schedule.pollQueueIntervalSecs = sระบุจำนวนวินาที s ที่จะรอก่อนการหยั่งสัญญาณอีกครั้ง เครื่องมือเชื่อมต่อเนื้อหาจะยังคงสำรวจรายการต่อไปตราบใดที่ API แสดงรายการในคำตอบของแบบสำรวจ เมื่อคำตอบของแบบสำรวจว่างเปล่า เครื่องมือเชื่อมต่อจะรอ s วินาทีก่อนลองอีกครั้ง การตั้งค่านี้ใช้โดย ListingConnector10ลองลดให้เหลือ 1
traverser.t1.pollRequest.statuses = status1, status2, …ระบุสถานะ status1, status2, ของรายการที่จะจัดทำดัชนี ตัวอย่างเช่น การตั้งค่า status1 เป็น NEW_ITEM และ status2 เป็น MODIFIED จะสั่งให้เครื่องมือข้ามผ่าน t1 จัดทำดัชนีเฉพาะรายการที่มีสถานะเหล่านั้นOne Traverser จะตรวจสอบทุกสถานะทดลองใช้การสำรวจความคิดเห็นของนักเดินทางในสถานะต่างๆ

ดูข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ของไฟล์การกำหนดค่าได้ที่พารามิเตอร์การกำหนดค่าที่ Google มีให้

SDK หมดเวลาหรือถูกขัดจังหวะขณะอัปโหลดไฟล์ขนาดใหญ่

หากคุณพบว่า SDK หมดเวลาหรือหยุดชะงักขณะอัปโหลดไฟล์ขนาดใหญ่ ให้ระบุระยะหมดเวลาที่นานขึ้นโดยใช้ traverser.timeout=s (โดยที่ s = จำนวนวินาที) ค่านี้ระบุระยะเวลาที่ชุดข้อความของผู้ปฏิบัติงานต้องประมวลผลรายการ ระยะหมดเวลาเริ่มต้นใน SDK คือ 60 วินาทีสำหรับเทรด Traverser นอกจากนี้ หากคุณพบว่าคำขอ API แต่ละรายการใกล้หมดเวลา ให้ใช้วิธีการต่อไปนี้เพื่อเพิ่มค่าระยะหมดเวลาของคำขอ

พารามิเตอร์ระยะหมดเวลาของคําขอ คำอธิบาย ค่าเริ่มต้น
indexingService.connectTimeoutSeconds ระยะหมดเวลาของการเชื่อมต่อสำหรับการจัดทำดัชนีคำขอ API 120 วินาที
indexingService.readTimeoutSeconds ระยะหมดเวลาการอ่านสำหรับคำขอ API ในการจัดทำดัชนี 120 วินาที