ฉันสันนิษฐานว่าการทดสอบ AB ภายในของฉันไม่ถูกต้องหมายความว่าเซิร์ฟเวอร์ของฉันสามารถจัดการ 1k concurrency @ 3k hits ต่อวินาที
ทฤษฎีของฉันในขณะนี้คือเครือข่ายเป็นคอขวด เซิร์ฟเวอร์ไม่สามารถส่งข้อมูลได้เร็วพอ
การทดสอบภายนอกจาก blitz.io ที่ 1k เห็นพ้องด้วยแสดงจำนวนครั้งที่ฉันเข้าชมสูงสุดที่ 180 โดยใช้เวลานานขึ้นและนานขึ้นในการตอบกลับเนื่องจากเซิร์ฟเวอร์สามารถส่งคืนได้ 180 ต่อวินาทีเท่านั้น
ฉันทำหน้าที่ไฟล์เปล่าจาก nginx และ benched มันมันชั่ง 1: 1 พร้อมกัน
ตอนนี้เพื่อแยกคอขวด IO / memcached (โดยปกติแล้ว nginx จะดึงจาก memcached) ฉันให้บริการหน้าแคชรุ่นคงที่จากระบบไฟล์
ผลลัพธ์คล้ายกันมากกับการทดสอบดั้งเดิมของฉัน ฉันปกคลุมที่ประมาณ 180 RPS
การแยกหน้า HTML ออกครึ่งหนึ่งจะให้ RPS สองเท่าดังนั้นมันจึงถูก จำกัด ด้วยขนาดของหน้า
ถ้าฉันภายใน ApacheBench จากเซิร์ฟเวอร์ภายในฉันได้รับผลลัพธ์ที่สอดคล้องกันประมาณ 4k RPS ทั้งบนหน้าเต็มและครึ่งหน้าในอัตราการถ่ายโอนสูง อัตราการถ่ายโอน: ได้รับ 62586.14 [Kbytes / วินาที]
ถ้าฉัน AB จากเซิร์ฟเวอร์ภายนอกฉันจะได้ประมาณ 180RPS - เหมือนกับผลลัพธ์ blitz.io
ฉันจะรู้ได้อย่างไรว่าไม่ใช่การควบคุมปริมาณโดยเจตนา
ถ้าฉันเปรียบเทียบจากเซิร์ฟเวอร์ภายนอกหลายตัวผลลัพธ์ทั้งหมดไม่ดีซึ่งทำให้ฉันเชื่อว่าปัญหาอยู่ในเซิร์ฟเวอร์ของฉันขาออกไม่ใช่ปัญหาความเร็วในการดาวน์โหลดกับเซิร์ฟเวอร์เปรียบเทียบ / blitz.io
ดังนั้นฉันกลับไปที่ข้อสรุปว่าเซิร์ฟเวอร์ของฉันไม่สามารถส่งข้อมูลได้เร็วพอ
ฉันถูกไหม? มีวิธีอื่นในการตีความข้อมูลนี้หรือไม่? วิธีแก้ปัญหา / การปรับให้เหมาะสมในการตั้งค่าเซิร์ฟเวอร์หลายตัว + การทำโหลดบาลานซ์ที่แต่ละเซิร์ฟเวอร์สามารถรับชมได้ 180 ครั้งต่อวินาทีหรือไม่?
ฉันค่อนข้างใหม่กับการปรับแต่งเซิร์ฟเวอร์ดังนั้นฉันขอขอบคุณที่ยืนยันการตีความข้อมูลนี้
การรับส่งข้อมูลขาออก
ต่อไปนี้เป็นข้อมูลเพิ่มเติมเกี่ยวกับแบนด์วิดท์ขาออก: กราฟเครือข่ายแสดงเอาต์พุตสูงสุด 16 Mb / s: 16 เมกะบิตต่อวินาที ฟังดูไม่ค่อยชอบเลย
เนื่องจากข้อเสนอแนะเกี่ยวกับการควบคุมปริมาณฉันจึงตรวจสอบเรื่องนี้และพบว่า linode มีขีดสูงสุด 50mbps (ซึ่งฉันไม่ได้ใกล้เคียงกับการชน) ฉันเพิ่มมันเป็น 100mbps
ตั้งแต่ linode จำกัด ปริมาณการใช้งานของฉันและฉันไม่ได้กดปุ่มนี่หมายความว่าเซิร์ฟเวอร์ของฉันควรสามารถแสดงผลได้สูงสุดถึง 100mbps แต่ถูก จำกัด ด้วยคอขวดภายในอื่น ฉันไม่เข้าใจว่าเครือข่ายขนาดใหญ่นี้ทำงานอย่างไร พวกเขาสามารถส่งข้อมูลได้เร็วเท่าที่พวกเขาสามารถอ่านจาก HDD ได้หรือไม่? คือท่อเครือข่ายที่ใหญ่?
สรุปแล้ว
1: จากข้างต้นฉันคิดว่าฉันสามารถยกระดับ 180RPS ของฉันได้อย่างแน่นอนโดยเพิ่มตัวโหลดบาลานซ์ของ nginx ที่ด้านบนของการตั้งค่าเซิร์ฟเวอร์ nginx หลายตัวที่ 180RPS ต่อเซิร์ฟเวอร์ที่อยู่ด้านหลัง LB
2: หาก linode มีขีด จำกัด 50/100mbit ที่ฉันไม่ได้กดปุ่มเลยต้องมีบางอย่างที่ฉันสามารถทำได้เพื่อให้ถึงขีด จำกัด นั้นด้วยการตั้งค่าเซิร์ฟเวอร์เดียวของฉัน ถ้าฉันสามารถอ่าน / ส่งข้อมูลเร็วพอในพื้นที่และแม้แต่ลินุกซ์ก็ยังมีหมวก 50mbit / 100mbit ต้องมีคอขวดภายในที่ไม่อนุญาตให้ฉันกดปุ่มเหล่านั้นที่ฉันไม่แน่ใจว่าจะตรวจจับได้อย่างไร แก้ไข?
ฉันรู้ว่าตอนนี้คำถามมีขนาดใหญ่และคลุมเครือ แต่ฉันไม่แน่ใจว่าจะย่อหย่อนได้อย่างไร ข้อมูลใด ๆ ที่ชื่นชมในข้อสรุปใด ๆ ที่ฉันทำ