ระบบปฏิบัติการ: Windows Server 2008, SP2 (ทำงานบน EC2 Amazon)
เรียกใช้แอปพลิเคชันเว็บโดยใช้เซิร์ฟเวอร์ Apache httpd & tomcat 6.02 และเว็บเซิร์ฟเวอร์มีการตั้งค่าแบบต่อเนื่อง
มีประมาณ 69,250 (http พอร์ต 80) + 15000 (นอกเหนือจากพอร์ต 80) การเชื่อมต่อ TCP ในสถานะ TIME_WAIT (ใช้ netstat & tcpview) การเชื่อมต่อเหล่านี้ดูเหมือนจะไม่ปิดแม้หลังจากหยุดเว็บเซิร์ฟเวอร์ (รอ 24 ชั่วโมง)
เคาน์เตอร์ตรวจสอบประสิทธิภาพ:
- การเชื่อมต่อที่ใช้งาน TCPv4: 145K
- TCPv4 การเชื่อมต่อแบบพาสซีฟ: 475K
- การเชื่อมต่อ TCPv4 ล้มเหลว: 16K
- รีเซ็ตการเชื่อมต่อ TCPv4: 23K
HKEY_LOCAL_MACHINE\System \CurrentControlSet\Services\Tcpip\Parameters
ไม่มีคีย์ TcpTimedWaitDelay ดังนั้นค่าควรเป็นค่าเริ่มต้น (2 * MSL, 4 นาที)
แม้ว่าจะมีการร้องขอการเชื่อมต่อหลายพันรายการเกิดขึ้นในเวลาเดียวกัน แต่ทำไม windows OS จึงไม่สามารถล้างข้อมูลได้ในที่สุด
อะไรคือเหตุผลเบื้องหลังสถานการณ์นี้
มีวิธีใดที่จะปิดการเชื่อมต่อ TIME_WAIT ทั้งหมดโดยไม่ต้องรีสตาร์ท windows OS หรือไม่?
หลังจากผ่านไปสองสามวันเราจะหยุดการเชื่อมต่อใหม่ ๆ