จะปรับปรุงความเร็วในการค้นหาใน Elastic Search ได้อย่างไร

Aug 16 2020

โฮสต์คือ AWS จาก ElasticSearch ฉันมีข้อมูล 2TB ที่เก็บไว้ใน 6 โหนดและในดัชนี 30 รายการพร้อมด้วยเศษ 10 ชิ้น การค้นหาอย่างง่ายในดัชนีทั้งหมดนั้นช้ามากและใช้เวลาไม่กี่นาที

ฉันทำผิดพลาดตรงไหน? เป็นเรื่องปกติหรือฉันมีการตั้งค่าที่ไม่ดีหรือฉันอาจมีข้อมูลที่จัดเก็บไว้มากเกินไป?

การตั้งค่าคลัสเตอร์ของฉัน:

"search": {
     "max_queue_size": "1000",
     "queue_size": "1000",
     "size": "4",
     "auto_queue_frame_size": "2000",
     "target_response_time": "1s",
     "min_queue_size": "1000"
},

การตั้งค่าโหนดของฉัน:

"os": {
     "refresh_interval_in_millis": 1000,
     "name": "Linux",
     "pretty_name": "CentOS Linux 7 (Core)",
     "arch": "amd64",
     "version": "4.15.0-1039-aws",
     "available_processors": 32,
     "allocated_processors": 2
}

ขอขอบคุณ!

คำตอบ

3 ElasticsearchNinja Aug 16 2020 at 14:17

เป็นคำถามที่กว้างมากและมีข้อมูลน้อยมากโปรดให้ข้อมูลเพิ่มเติมเช่น:

  1. คุณมีข้อมูลและขนาดของแต่ละชาร์ดเท่าใด
  2. ตัวอย่างคำค้นหาที่ใช้เวลาเฉลี่ย
  3. ขนาดฮีปโหนดข้อมูลและเหตุใดคุณจึงมีallocated_processorsหน่วยประมวลผลกลางน้อยกว่า (2) ตัว (32)
  4. จำนวนเอกสารที่คุณกำลังเรียกในคำค้นหาเช่นพารามิเตอร์ขนาด
  5. เวลาในการตอบสนองของการค้นหาจะไม่มีการเรียกค้นหา
  6. ค้นหาบันทึกช้าของ elasticsearch (ES)

คุณสามารถอ้างถึงเคล็ดลับ 10ประการในการปรับปรุงประสิทธิภาพการค้นหาและบอกค่าพารามิเตอร์บางอย่างที่กล่าวถึงในคำแนะนำและยังสามารถลองใช้เครื่องมือเพิ่มประสิทธิภาพคลัสเตอร์เพื่อปรับแต่งคลัสเตอร์และการตั้งค่าโหนดของ ES

ตามที่กล่าวไว้ในความคิดเห็นโปรดดูบล็อกการค้นหาแบบล็อกช้าของ opsterสำหรับการแก้ไขปัญหาที่มีประสิทธิภาพมากขึ้น

1 Jaycreation Aug 19 2020 at 11:20
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica

ที่มาก ขนาดเป้าหมายสำหรับชาร์ดควรอยู่ที่ประมาณ 50Gb ด้วยการตั้งค่าของคุณคุณมีมากขึ้นประมาณ 5Gb Each คุณสามารถลดขนาดเป็น 5 เศษหรือน้อยกว่าและบังคับให้รวมเป็น 1 ส่วน การแสดงควรปรับปรุงอีกมาก

หลังจากนั้นให้ดูคำแนะนำดีๆอื่น ๆ ที่ Optsters ให้ไว้ในบล็อกของเขา มีความเกี่ยวข้องทั้งหมด