เป็นคำถามที่ดีมาก!
ตามเนื้อผ้า KeepAlive เป็นสิ่งที่ดีเพราะช่วยลดค่าใช้จ่าย TCP อย่างมากของการโหลดหน้าเว็บโดยรวมซึ่งมีการร้องขอจำนวนมาก (เช่นอิมเมจทั้งหมด, css, js) จากเซิร์ฟเวอร์เดียว หากหน้าของคุณมี 85 เนื้อหานั่นคือ 85 handshakes TCP แบบสามทางพิเศษและความล่าช้าจะเพิ่มขึ้น หลายปีที่ผ่านมาด้วยการเชื่อมต่ออินเทอร์เน็ตที่ช้าลงสิ่งนี้สำคัญกว่าตอนนี้แม้ว่ามันจะยังคงเกี่ยวข้องกับเบราว์เซอร์มือถือหรือการเชื่อมต่อที่ช้า / ช้า
ผลกระทบที่กล่าวถึงในที่นี้เกี่ยวข้องกับระยะเวลาที่การเชื่อมต่อ TCP นั้นเปิดอยู่และอาจทำให้กระบวนการลูก Apache ของคุณหมดเร็ว ค่าเริ่มต้นส่วนใหญ่ที่ฉันเคยเห็นคือ:
KeepAliveTimeOut 15
MaxClients 256
ซึ่งหมายความว่าหากฉันมี 256 เบราว์เซอร์ที่แตกต่างกันร้องขอเนื้อหาภายใน 15 วินาทีเดียวกันไคลเอนต์ที่ 257 จะต้องรอให้การเชื่อมต่อหลุดออก ไม่ดี - นี่ไม่ใช่การรับส่งข้อมูลที่สูงโดยเฉพาะเลยดังนั้นจึงอธิบายคำแนะนำนั้น นอกจากนี้ยังอาจนำไปสู่การเพิ่ม MaxClients เพื่อรับมือซึ่งอาจกินหน่วยความจำจำนวนมาก เมื่อฉันใช้ KeepAlives ฉันมักจะตั้ง KeepAliveTimeout เป็น 2 หรือ 3 วินาที เป็นเวลาว่างระหว่างการร้องขอมากกว่าเวลาทั้งหมดสำหรับการร้องขอทั้งหมด
หากคุณใช้ KeepAlive จะมีการปรับสมดุลระหว่าง KeepAliveTimeout, MaxClients และทรัพยากรเซิร์ฟเวอร์ เพื่อช่วยในเรื่องนั้น 'service httpd / apache2 fullstatus' จะแสดงจำนวนการเชื่อมต่อที่ KeepAlives ใช้ในแต่ละครั้ง - ระบุด้วยตัวพิมพ์ใหญ่ 'K'
สำหรับ Magento ฉันไม่คิดว่าคุณต้องการ KeepAlives
สิ่งที่คุณควรทำถ้าคุณมีไซต์องค์กรที่มีปริมาณการใช้งานสูงมากกำลังใช้ CDN สำหรับเนื้อหาแบบคงที่ของคุณ
หากคุณกำลังขายในหลายประเทศการใช้ CDN จะไม่เพียงเพิ่มความเร็วในการโหลดหน้าเว็บโดยรวมสำหรับลูกค้าของคุณ (ซึ่งดี) แต่ลดแบนด์วิดท์ขนาดใหญ่ที่มาถึงเซิร์ฟเวอร์ของคุณ การตั้งค่าภายใต้ระบบ> กำหนดค่า> เว็บ> [ไม่ปลอดภัย] ทำให้ไม่สำคัญเลยที่จะรวม CDN ใด ๆ กับ Media, Skin และ JavaScript นี่จะเป็นจำนวนมากของคำขอ HTTP ที่เกิดขึ้นจริงและเป็นโบนัสที่คุณสามารถใช้ระเบียน DNS ที่แตกต่างกันเพื่อดาวน์โหลดแบบขนานในชื่อโฮสต์ หากคุณทำถูกต้องคำขอเหล่านั้นจะแทบจะไม่แตะเซิร์ฟเวอร์ของคุณดังนั้นจึงไม่จำเป็นต้องใช้อีกต่อไปสำหรับ KeepAlive ในกรณีนี้คุณควรปิดการใช้งาน KA เราไม่ต้องการให้การเชื่อมต่อนั้นยังคงอยู่เมื่อเรารู้ว่าเนื้อหาส่วนที่เหลือถูกให้บริการจากที่อื่น หากคุณต้องการคำแนะนำ CDN แบบสแตนด์อโลน: CloudFlare นั้นยอดเยี่ยมและคุณยังได้รับ SSL ด้วยแพ็คเกจฟรี
เมื่อใช้ CDN เช่นนี้หรือหากคุณใช้ reverse proxy ชนิดอื่น (เช่นวานิช) Apache HTTP KeepAlives ของคุณก็ไม่เกี่ยวข้องโดยทั่วไป
ในการสรุปฉันยอมรับว่าคุณควรปิดใช้งาน KeepAliveเพื่อหลีกเลี่ยงกระบวนการ Apache ของคุณที่เต็มไปด้วยภาระ แต่ใช้ CDN หรือพร็อกซีย้อนกลับอื่น ๆ สำหรับเนื้อหาเพื่อให้หน้าเว็บของคุณโหลดเร็วที่สุด