เปิดใช้งาน KeepAlive หรือไม่


9

ฉันทามติเกี่ยวกับ KeepAlive ต่อไปเมื่อมีเว็บไซต์ Magento ที่มีอัตราการเข้าชมสูง ดูเหมือนว่าคนส่วนใหญ่แนะนำให้ใช้ แต่เมื่อวีโอไอพีระบุว่าจะทิ้งไว้ในการเพิ่มประสิทธิภาพและความสามารถในการขยายด้วย Magento Enterprise Edition พวกเขาอ้างว่า

"เมื่อเว็บเซิร์ฟเวอร์อยู่ภายใต้การโหลดจำนวนมากการรักษาการเชื่อมต่อแบบถาวรจะทำให้เกิดข้อเสียดังนั้นจึงควรปิดใช้งานคำสั่ง KeepAlive เสมอ"

คิด?

คำตอบ:


4

เป็นคำถามที่ดีมาก!

ตามเนื้อผ้า 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 หรือพร็อกซีย้อนกลับอื่น ๆ สำหรับเนื้อหาเพื่อให้หน้าเว็บของคุณโหลดเร็วที่สุด


1
Keepalives ยังคงมีความเกี่ยวข้องระหว่างการดึงที่มาจาก CDN ไม่ควรเปิดใช้งาน / ปิดใช้งานเบา ๆ และควรทดสอบอย่างละเอียด ฉันขอแนะนำให้ลดการร้องขอลดสินทรัพย์ก่อนที่จะพิจารณา CDN - การกำหนดค่าผิดพลาดพวกเขาสามารถทำให้ร้านค้าช้ากว่าเร็วกว่า
Ben Lessani - Sonassi

วิธีตั้งค่าระบบโลคัลการตั้งค่า keepalive สำหรับเซิร์ฟเวอร์ XAMPP
bhavin thummar
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.