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

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 เทรด แต่ละเทรดจะประมวลผลทีละรายการ ค่าเริ่มต้น 50 รายการจะประมวลผลได้สูงสุดเพียง 50 รายการพร้อมกัน และจะใช้เวลาประมาณ 4 วินาทีในการประมวลผลแต่ละรายการ (รวมถึงคำขอการจัดทำดัชนี) 50 ลองเพิ่ม threadPoolSize ขึ้นทีละ 10

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

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

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

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

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

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

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

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

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