เว็บเซิร์ฟเวอร์ของฉันควรมีคำขอกี่คำขอ


39

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

และได้จำนวน 70 คำขอต่อวินาที (1,000 คำขอพร้อมผู้ใช้ 100 คนพร้อมกัน) บนหน้าเว็บที่โหลดจากตารางฐานข้อมูล 4 ตารางที่แตกต่างกันและทำการจัดการกับข้อมูล ดังนั้นจึงเป็นหน้าที่ค่อนข้างหนัก

เซิร์ฟเวอร์ไม่ได้ใช้งานอย่างอื่นในตอนนี้และการโหลดมันเป็นเพียงฉันเพราะมันกำลังอยู่ในระหว่างการพัฒนา แต่แอปพลิเคชั่นจะใช้งานทุกวันโดยผู้ใช้หลายคน

แต่นี่เพียงพอหรือไม่ หรือฉันควรจะกังวลด้วยซ้ำ (ตราบเท่าที่มันเกิน X ร้องขอสักวินาที)

ฉันคิดว่าฉันไม่ควรกังวล แต่ฉันต้องการคำแนะนำเกี่ยวกับเรื่องนี้

คำตอบ:


44

70 คำขอต่อวินาทีสามารถใช้อัตราชั่วโมงต่อการแสดงผล 252,000 หน้าต่อชั่วโมง

หากคุณคิดว่าเซสชั่นการสืบค้นโดยเฉลี่ยสำหรับเว็บไซต์ของคุณมีความลึก 10 หน้าคุณสามารถรองรับได้ 25,000 ครั้ง / ชั่วโมง

คุณควรตรวจสอบตัวเลขเหล่านี้เทียบกับจำนวนผู้เข้าชมที่คาดหวังซึ่งควรมีให้จากฝ่ายธุรกิจ

เว็บไซต์จำนวนมากที่ฉันทำงานเห็นประมาณ 50% ของปริมาณการใช้งานรายวันในช่วงเวลาสูงสุด 3 ชั่วโมงในแต่ละวัน หากเป็นกรณีนี้กับเว็บไซต์ของคุณ (ขึ้นอยู่กับประเภทของเนื้อหาที่คุณให้และผู้ชม) คุณควรสามารถรองรับจำนวนการเข้าชมที่ไม่ซ้ำกันทุกวันได้ประมาณ 150,000 ครั้ง

ตัวเลขเหล่านี้ค่อนข้างดี ฉันคิดว่าคุณควรจะสบายดี ควรดูที่การแคช opcode และการปรับฐานข้อมูลทันที ตรวจสอบไซต์ค้นหาฮอตสปอตและรอให้ปริมาณการใช้ข้อมูลเพิ่มขึ้นก่อนที่คุณจะดำเนินการปรับแต่งให้เหมาะสมเพื่อหาปัญหาที่คุณอาจไม่มี


คำตอบที่ดีมากสิ่งที่ฉันกำลังมองหา ฉันยังไม่ได้ทำการเพิ่มประสิทธิภาพใด ๆ และต้องการรับหมายเลขฐานเพื่อดูว่าฉันนั่งอยู่ที่ไหนในขณะนี้
Ólafur Waage

"ถ้าคุณสมมติว่าเซสชันการเรียกดูโดยเฉลี่ยสำหรับไซต์ของคุณลึก 10 หน้าคุณสามารถรองรับ 25,000 ซ้ำ / ชั่วโมง" ... ภายใต้สมมติฐานว่าทุกอันที่ไม่ซ้ำกันจะส่งคำขอทุกวินาทีในช่วงเซสชั่น หากผู้เข้าชมต้องคิดก่อนคลิก / ขอถัดไป - เช่น 5 วินาที - คุณจะสามารถรองรับผู้เข้าชมได้มากขึ้นในช่วงเวลาคู่ขนาน
Jochem Schulenklopper

ฉันเห็นด้วยกับ "การปรับให้เหมาะสมก่อนกำหนด" โดยสิ้นเชิงจากมุมมองโค้ด แต่การเลือกการออกแบบที่สมบูรณ์แบบนั้นจริง ๆ แล้วเป็นรากเหง้าของความชั่วร้ายทั้งหมด ไม่มีอะไรสามารถเอาชนะการออกแบบที่มีข้อบกพร่องยกเว้นการเขียนใหม่
Jeff Fischer

5

ฉันใช้เครื่องมือ 2 อย่างเพื่อดูประสิทธิภาพของเซิร์ฟเวอร์ apache ในอดีต

หนึ่งคือmuninซึ่งกราฟทุกประเภทรวมถึงจำนวนของอินสแตนซ์ apache จำนวนการเชื่อมต่อหน่วยความจำที่มีอยู่การใช้งานตัวประมวลผลและอื่น ๆ - และช่วยฉันกำหนดเมื่อฉันเข้าใกล้เขตอันตรายและทำไม

อันที่สองเป็นเพียงหน้าสถานะเซิร์ฟเวอร์ apache ( http: // your_server / server-status? refresh = 10 ) ซึ่งช่วยให้ฉันเห็นสถานะของการเชื่อมต่อแต่ละครั้งพร้อมกับจำนวนการเชื่อมต่อฟรีที่มีอยู่ในช่วงเวลาที่กำหนด


1

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

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


ฉันต้องการเตรียมพร้อมสำหรับคำขอที่เร่งด่วนเล็กน้อยเช่นหน้าเว็บที่รวดเร็วมากสามารถจัดการคำขอได้ประมาณ 110 คำขอต่อวินาที ในขณะที่เซิร์ฟเวอร์สามารถจัดการ 2,900 rps ในหน้าว่าง
lafur Waage

0

คุณระบุในความคิดเห็นที่เซิร์ฟเวอร์ของคุณสามารถจัดการ 2,900 คำขอต่อวินาทีในหน้าว่าง นั่นบ่งบอกได้อย่างชัดเจนว่าไม่ใช่เว็บเซิร์ฟเวอร์ - เป็นการประมวลผล

หากคุณกำลังใช้ PHP, พิจารณา cacher opcode เช่นAPC หากฐานข้อมูลเป็นคอขวดmemcachedจะช่วยคุณเช่นกัน


ไม่กังวลเป็นพิเศษเกี่ยวกับตัวเลขถ้า 70 rps เพียงพอ
Ólafur Waage

0

เมื่อคุณทำให้ไซต์ของคุณอยู่ในสถานะจริงคุณสามารถดู mod_top 1ซึ่งจะให้มุมมองแบบเรียลไทม์ของการโหลดปัจจุบันบน Apache ฉันไม่ได้ติดตั้งด้วยตัวเอง แต่ดูเหมือนว่าจะมีข้อมูลเพิ่มเติมและการแบ่งย่อยโหลดที่ดีกว่าสถานะเซิร์ฟเวอร์ Apache มาตรฐาน

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