ขนาด จำกัด ของ / etc / hosts (Linux)


11

มีใครบ้างที่รู้ว่าขนาด จำกัด ทางทฤษฎีของ / etc / hosts อยู่บนระบบ Linux ก่อนที่คุณจะเริ่มเห็นถึงประสิทธิภาพที่ลดลง

นอกจากนี้ทุกคนสามารถชี้ให้ฉันไปยังแหล่งที่มาอย่างเป็นทางการที่ระบุว่าขีด จำกัด ที่คาดหวังคืออะไร


8
นี่ทำให้ฉันคิดว่าคุณกำลังทำอะไรที่บ้าหรือเป็นวิธีที่ดีที่สุด มีรายละเอียดอะไรบ้าง?
ewwhite

3
แน่นอนว่าการปรับใช้ตัวแก้ไข DNS แบบจริงจังอาจเป็นทางออกที่ดีกว่าที่นี่
Zoredache

1
ฉันมีลูกค้าที่ขอสิ่งนี้ ฉันหวังว่าจะพบเอกสารบางอย่างที่ฉันสามารถแสดงให้พวกเขาเห็นได้ว่าเหตุใดจึงทำให้เกิดปัญหา แทนที่จะต้องลองบนเครื่องทดสอบและสาธิตให้เห็น
MikeP90

1
ไฟล์โฮสต์เป็นที่ระลึกของวันก่อน DNS ของปี 1970 และต้นปี 1980 มีหลายร้อยรายการในไฟล์โฮสต์ได้รับการยอมรับว่าเป็นความคิดที่ดีที่ไกลกลับ หากคุณมีมากกว่า 10 รายการในคุณอาจเป็นไปในทางที่ผิด
Michael Hampton

คำตอบ:


9

ใช้แหล่งที่มาไมค์

ตัวแก้ไขใช้การค้นหาเชิงเส้นผ่านไฟล์ข้อความเพื่อค้นหารายการ มันเป็นฐานข้อมูลที่ไม่มีดัชนี ดังนั้นในกรณีที่ไม่มีความสามารถแคชเพิ่มเติมค่าใช้จ่ายสำหรับการค้นหาจะเป็น O (n) เมื่อไรที่จะส่งผลให้ประสิทธิภาพลดลงนั่นเป็นคำถามที่เป็นไปไม่ได้ที่จะตอบ - มันช้าลงในทุก ๆ บันทึก

หากคุณพูดคุยกับโปรแกรมเมอร์ฐานข้อมูลหรือผู้ดูแลระบบคุณจะได้รับตัวเลขที่แตกต่างกันสำหรับจุดที่การค้นหาดัชนี (O (log2 (n)) ราคาถูกกว่าการสแกนเต็มตาราง แต่โดยทั่วไปคำตอบจะอยู่ในพื้นที่ 20 ถึง 100 รายการ

ระบบ linux ใด ๆ ที่ต้องการแก้ไขชื่อจำนวนมาก (ไม่ใช่แค่ชื่อโฮสต์) ควรใช้ nscd หรือคล้ายกัน แคชส่วนใหญ่จะทำดัชนีข้อมูลด้วยตนเองซึ่งจะทำให้คำถามประสิทธิภาพเป็นโมฆะอย่างไรก็ตาม ...

มันไม่มีวิธีการจัดการชุดข้อมูลที่ซับซ้อน / ขนาดใหญ่ - ถ้าคุณมีโฮสต์ที่มีที่อยู่ IP มากกว่าหนึ่งรายการการค้นหาผ่านไฟล์โฮสต์จะส่งคืนรายการแรกเสมอ


1
ในการปิดลูปเราได้เพิ่ม 1.7 ล้านเรคคอร์ดลงในไฟล์โฮสต์และได้ประมาณว่าจะเพิ่ม 0.5 วินาทีในการค้นหาแต่ละครั้ง ในสภาพแวดล้อมนี้ 0.5 วินาทีนั้นเล็กน้อย ฉันคิดว่าเซิร์ฟเวอร์ DNS ยังคงเป็นทางออกที่ดีกว่า แต่ลูกค้าต้องการสิ่งที่ลูกค้าต้องการ
MikeP90

5

บิตของประวัติอินเทอร์เน็ต - ก่อนที่ DNS ถูกนำไปใช้ในปี 1984 ไฟล์โฮสต์เป็นเพียงคนเดียวที่จะแก้ไขชื่อและมีไม่มากของเจ้าภาพในเครือข่าย - 325 ในกุมภาพันธ์ 1983 (RFC 847) มีสำเนาของ HOSTS.TXT (ไม่สามารถอ่านได้ด้วยเครื่อง) ตั้งแต่ปี 2525 ในที่เก็บข้อมูลของนักประวัติศาสตร์ไมลลิสต์ มีแม้กระทั่ง hosts.txt สำรอง(เจฟฟ์ Goodfellow ของ)


3

ในทางเทคนิคไม่มีขอบเขตบน อย่างไรก็ตามการค้นหา DNS ทุกครั้งจะตีไฟล์นี้ดังนั้นทำไมจึงเปิดตัวเองให้เป็นเช่นนั้น

สำหรับสิ่งที่คุ้มค่า/etc/hostsไฟล์ที่ใหญ่ที่สุดที่ฉันแจกจ่ายในสภาพแวดล้อมของฉันคือ 1,200 บรรทัด และนั่นทำงานได้ดีสำหรับแอปพลิเคชันที่ฉันจัดการอยู่ DNS ไม่ใช่ตัวเลือกในสภาพแวดล้อมนั้น


ลองทำอีกวิธีกัน หากไม่มีการจัดทำดัชนีในเคอร์เนลแต่ละครั้งจะทำการค้นหาเชิงเส้นซึ่งจะขึ้นอยู่กับขนาดแคชเท่าที่เวลาจะไป
Deer Hunter

4
ฉันใช้ไฟล์โฮสต์ที่ได้รับความนิยมที่พบในอินเทอร์เน็ตมี 15,430 บรรทัดและฉันสังเกตว่าไม่มีการลดลงของประสิทธิภาพการท่องเว็บ
Bert

@eerHunter ฉันไม่คิดว่าจะมีอะไรในเคอร์เนล Unix ที่ทำการค้นหาชื่อโฮสต์
Barmar

+1 ถึงบันทึกของเบิร์ต ฉันเพิ่งใช้ไฟล์ที่กำหนดเองที่มี 22,000 บรรทัดและมันไม่ได้ส่งผลกระทบต่อประสิทธิภาพ สิ่งนี้มีประโยชน์สำหรับการทดสอบ!
Josh koenig
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.