อะไร จำกัด จำนวนการเชื่อมต่อสูงสุดบนเซิร์ฟเวอร์ Linux
พารามิเตอร์เคอร์เนลหรือการตั้งค่าอื่นใดควบคุมจำนวนสูงสุดของซ็อกเก็ต TCP ที่สามารถเปิดได้บนเซิร์ฟเวอร์ Linux อะไรคือข้อดีของการอนุญาตให้มีการเชื่อมต่อมากขึ้น? ฉันสังเกตในขณะที่โหลดทดสอบเซิร์ฟเวอร์ Apache ด้วยabว่ามันค่อนข้างง่ายที่จะเปิดการเชื่อมต่อสูงสุดบนเซิร์ฟเวอร์ หากคุณไม่ใช้ตัวเลือก ab's -k ซึ่งอนุญาตให้นำการเชื่อมต่อกลับมาใช้ใหม่และให้ส่งคำขอมากกว่า 10,000 คำขอจากนั้น Apache จะให้บริการคำขอ 11,000 รายการแรกแล้วหยุดพักเป็นเวลา 60 วินาที ดูที่เอาต์พุต netstat แสดงการเชื่อมต่อ 11,000 การเชื่อมต่อในสถานะ TIME_WAIT เห็นได้ชัดว่านี่เป็นเรื่องปกติ การเชื่อมต่อจะถูกเก็บไว้เปิดเริ่มต้นของ 60 วินาทีแม้หลังจากที่ลูกค้าจะทำกับพวกเขาสำหรับเหตุผล TCP ความน่าเชื่อถือ ดูเหมือนว่านี่จะเป็นวิธีที่ง่ายในการใช้เซิร์ฟเวอร์ DoS และฉันสงสัยว่าการปรับจูนและการป้องกันตามปกติเป็นอย่างไร นี่คือผลการทดสอบของฉัน: # ab -c 5 -n 50000 http://localhost/ This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 …