จะปรับปรุงความเร็วในการค้นหาใน Elastic Search ได้อย่างไร
โฮสต์คือ 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
}
ขอขอบคุณ!
คำตอบ
เป็นคำถามที่กว้างมากและมีข้อมูลน้อยมากโปรดให้ข้อมูลเพิ่มเติมเช่น:
- คุณมีข้อมูลและขนาดของแต่ละชาร์ดเท่าใด
- ตัวอย่างคำค้นหาที่ใช้เวลาเฉลี่ย
- ขนาดฮีปโหนดข้อมูลและเหตุใดคุณจึงมี
allocated_processors
หน่วยประมวลผลกลางน้อยกว่า (2) ตัว (32) - จำนวนเอกสารที่คุณกำลังเรียกในคำค้นหาเช่นพารามิเตอร์ขนาด
- เวลาในการตอบสนองของการค้นหาจะไม่มีการเรียกค้นหา
- ค้นหาบันทึกช้าของ elasticsearch (ES)
คุณสามารถอ้างถึงเคล็ดลับ 10ประการในการปรับปรุงประสิทธิภาพการค้นหาและบอกค่าพารามิเตอร์บางอย่างที่กล่าวถึงในคำแนะนำและยังสามารถลองใช้เครื่องมือเพิ่มประสิทธิภาพคลัสเตอร์เพื่อปรับแต่งคลัสเตอร์และการตั้งค่าโหนดของ ES
ตามที่กล่าวไว้ในความคิดเห็นโปรดดูบล็อกการค้นหาแบบล็อกช้าของ opsterสำหรับการแก้ไขปัญหาที่มีประสิทธิภาพมากขึ้น
1)I have 2TB data. Every index has 50GB or more. Each has 10 shards and a replica
ที่มาก ขนาดเป้าหมายสำหรับชาร์ดควรอยู่ที่ประมาณ 50Gb ด้วยการตั้งค่าของคุณคุณมีมากขึ้นประมาณ 5Gb Each คุณสามารถลดขนาดเป็น 5 เศษหรือน้อยกว่าและบังคับให้รวมเป็น 1 ส่วน การแสดงควรปรับปรุงอีกมาก
หลังจากนั้นให้ดูคำแนะนำดีๆอื่น ๆ ที่ Optsters ให้ไว้ในบล็อกของเขา มีความเกี่ยวข้องทั้งหมด