การกำหนดคำร้องขอจริงต่อวินาทีสำหรับเว็บเซิร์ฟเวอร์


15

ฉันกำลังตั้งค่าสแต็ก nginx และปรับการตั้งค่าให้เหมาะสมก่อนที่จะเผยแพร่ การเรียกใช้ ab เพื่อทดสอบเครื่องฉันรู้สึกผิดหวังที่เห็นสิ่งที่เติมออกมาที่ 150 คำร้องขอต่อวินาทีโดยมีคำขอจำนวนมากที่ใช้เวลา> 1 วินาทีเพื่อส่งคืน อย่างแปลกประหลาดตัวเครื่องเองไม่ได้หายใจลำบาก

ในที่สุดฉันก็คิดว่าจะ ping กล่องและเห็นเวลา ping ประมาณ 100-125 ms (เครื่องแปลกใจของฉันอยู่ทั่วประเทศ) ดังนั้นดูเหมือนว่าเวลาแฝงของเครือข่ายมีอิทธิพลเหนือการทดสอบของฉัน ใช้การทดสอบเดียวกันจากเครื่องในเครือข่ายเดียวกันกับเซิร์ฟเวอร์ (ping คูณ <1ms) และฉันเห็น> 5,000 คำขอต่อวินาทีซึ่งสอดคล้องกับสิ่งที่ฉันคาดหวังจากเครื่องมากขึ้น

แต่นี่ทำให้ฉันคิดว่า: ฉันจะกำหนดและรายงานการวัดคำขอจริง "ต่อวินาที" สำหรับเว็บเซิร์ฟเวอร์ได้อย่างไร คุณเห็นการอ้างสิทธิ์เสมอเกี่ยวกับประสิทธิภาพ แต่ไม่ควรคำนึงถึงเวลาในการตอบสนองของเครือข่าย แน่นอนว่าฉันสามารถให้บริการ 5,000 เครื่องต่อวินาทีไปยังเครื่องที่อยู่ถัดจากเซิร์ฟเวอร์ แต่ไม่ใช่เครื่องทั่วประเทศ หากฉันมีการเชื่อมต่อที่ช้ามากพวกเขาจะส่งผลกระทบต่อประสิทธิภาพของเซิร์ฟเวอร์ในที่สุดใช่ไหม หรือฉันกำลังคิดเกี่ยวกับสิ่งนี้ผิดทั้งหมด?

ยกโทษให้ฉันถ้านี่คือวิศวกรรมเครือข่าย 101 สิ่ง ฉันเป็นผู้พัฒนาโดยการค้า

อัปเดต:แก้ไขเพื่อความชัดเจน


abมีตัวเลือกการทำงานพร้อมกัน คุณตั้งค่าไว้ที่อะไร นอกจากนี้หากคุณกำลังทดสอบจากการเชื่อมต่อ ADSL ในประเทศการทดสอบนั้นจะถูกควบคุมโดยแบนด์วิดท์ของคุณและจะไม่ทดสอบอะไรบนเซิร์ฟเวอร์เลย
Ladadadada

ฉันคุ้นเคยกับตัวเลือกการทำงานพร้อมกันของ ab และลองใช้ค่าที่หลากหลายเพื่อค้นหาข้อ จำกัด ของกล่อง ดังที่ฉันได้เขียนไว้ข้างต้นฉันเข้าใจว่าการทดสอบเริ่มต้นของฉันถูกครอบงำโดยเครือข่ายและไม่ได้สะท้อนความสามารถของเซิร์ฟเวอร์ แต่คำถามของฉันยังคงมีอยู่: คนส่วนใหญ่ทำการทดสอบจากที่ไหนเพื่อให้ได้ตัวชี้วัดที่เหมือนจริง การทดสอบเรียกใช้จากกล่องในเครือข่ายเดียวกับเซิร์ฟเวอร์ (ทำให้การหน่วงเวลาเครือข่ายใด ๆ หลุดออกจากสมการได้อย่างมีประสิทธิภาพ) จะคืนค่าจำนวนมาก แต่พวกเขาดูเหมือนจะไม่ "ยุติธรรม" เพราะผู้ใช้จริงจะมาจากนอกเครือข่าย
Don

การทดสอบที่เรียกใช้จากเครือข่ายเดียวกันอาจทำให้ 'ยุติธรรม' มากขึ้นเนื่องจากพวกเขาไม่สนใจเครือข่าย ผู้ใช้ของคุณมีโอกาสทั้งหมดในเครือข่ายที่แตกต่างกัน - ดังนั้นแบนด์วิดท์รวมของเครือข่ายเหล่านั้นทั้งหมดควรเกินแบนด์วิดท์ที่มีอยู่ของเซิร์ฟเวอร์ของคุณ เมื่อพิจารณาผู้ใช้ทั้งหมดด้วยกันคอขวดจึงเป็นความสามารถของเซิร์ฟเวอร์ - ในขณะที่พิจารณาผู้ใช้แต่ละรายคอขวดอาจเป็นแบนด์วิดท์ของผู้ใช้รายเดียว (การทดสอบในอุดมคติอาจถูกเรียกใช้จากสถานที่ห่างไกลหลายแห่งเพื่อจำลองสถานการณ์จริงที่ดีที่สุดแม้ว่ากรณีส่วนใหญ่ไม่จำเป็นต้องทำเช่นนั้น)
cyberx86

"เมื่อพิจารณาผู้ใช้ทั้งหมดด้วยกันคอขวดจึงเป็นความสามารถของเซิร์ฟเวอร์" - ซึ่งสมเหตุสมผลและดูเหมือนเป็นวิธีที่ถูกต้องในการคิด ฉันคิดว่าเซิร์ฟเวอร์อาจนั่งอยู่หลังอุปกรณ์เครือข่ายเส็งเคร็ง จำกัด อัตราการตอบสนองของมันไปสู่โลกภายนอก แต่นั่นไม่ใช่ปัญหาของเซิร์ฟเวอร์จริงและต้องแก้ไขแยกต่างหาก ฉันคิดว่าอย่างPingdomจะสามารถใช้ในการทดสอบอุดมคติได้
Don

คำตอบ:


3

หากคุณสนใจเกี่ยวกับประสิทธิภาพของเซิร์ฟเวอร์ของคุณเมื่อเข้าถึงจากที่ไหนสักแห่งในโลกถามเพื่อนบางคนในโลก (ควรมี bandwith ที่ดี) เพื่อติดตั้งsproxy + siegeบนกล่อง linux ของเขา เพียงดาวน์โหลดกำหนดค่าสร้าง เครื่องมือเหล่านี้มีขนาดเล็กพวกเขารวบรวมภายในไม่กี่วินาที

ก่อนอื่นให้เริ่มsproxyจากกล่อง linux โดยค่าเริ่มต้นมันจะทำงานบนพอร์ต 9001 บน localhost (127.0.0.1) หากคุณต้องการเข้าถึงจากภายนอกเพียงแค่ส่งที่อยู่ IP ขาออกเป็นพารามิเตอร์
ตอนนี้เชื่อมต่อกับ sproxy โดยตั้งค่าเบราว์เซอร์ของคุณให้ใช้ ip และพอร์ตนี้เป็นพร็อกซีสำหรับ HTTP ทุกสิ่งที่คุณทำนับจากนี้ไปจะถูกบันทึกโดย sproxy และสามารถเล่นซ้ำได้ในภายหลัง ตอนนี้ท่องไปบนเว็บไซต์ของคุณทำสิ่งที่ลูกค้าของคุณจะทำและพยายามทำสิ่ง "แพง" ที่ใช้เซิร์ฟเวอร์ของคุณ
เมื่อเสร็จแล้วให้จบ sproxy โดยกดปุ่ม CTRL ^ C $HOME/urls.txtมันบันทึกการกระทำของคุณจะ ย้ายไฟล์ไปยังตำแหน่งที่มีการล้อมอยู่ siege -f urls.txt -d NUM -c NUMในการเริ่มต้นการทดสอบความเครียดเรียกใช้ dหมายถึงความล่าช้าระหว่างคำขอเมื่อทำการทดสอบประสิทธิภาพให้ใช้ 1 (วินาที)cย่อมาจากจำนวนผู้ใช้พร้อมกันจำลอง เลือกที่จะ แต่เริ่มต้นต่ำ Siege จะแสดงจำนวนธุรกรรมต่อวินาทีข้อผิดพลาดระยะเวลาที่ร้องขอโดยเฉลี่ยเป็นต้นซึ่งเป็นเครื่องมือที่ทรงพลังและใช้งานง่าย
หากท่านต้องการข้อมูลเพิ่มเติมเกี่ยวกับพารามิเตอร์ (มีจำนวนมาก) ตรวจสอบล้อมคู่มือนั้นคู่มือ sproxy

เพื่อให้ได้ผลลัพธ์ที่สมจริงยิ่งขึ้นให้ผู้คนมากมายทดสอบเซิร์ฟเวอร์ของคุณจากหลาย ๆ ประเทศพร้อมกันและให้พวกเขาส่งสถิติให้คุณ


2

ควรทำการวัดคำขอ / วินาทีที่เหมือนจริงจากบันทึกการเข้าถึง IMO เวลาแฝงคำขอนั้นไม่เกี่ยวข้องกับโหลดเซิร์ฟเวอร์เนื่องจากเซิร์ฟเวอร์ประมวลผลคำขอทั้งหมดด้วยความเร็วเดียวกันโดยไม่คำนึงถึงจุดเริ่มต้น


1

พิจารณาการใช้บริการเช่นSoasta Cloudtest ด้วยคุณสามารถรับรายงานแบบละเอียดเกี่ยวกับการทดสอบของคุณและคุณสามารถเรียกใช้การทดสอบประสิทธิภาพจากผู้ให้บริการคลาวด์สาธารณะ / เสมือนจริงแบบต่างๆ คุณสามารถกำหนดค่าความยากและระยะเวลาที่คุณต้องการเซิร์ฟเวอร์ของคุณ พวกเขายังมีเวอร์ชั่น " lite " ฟรีเพื่อให้คุณเห็นสิ่งที่สามารถทำได้ก่อนที่จะรับเงิน

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