มีวิธีทดสอบว่าไซต์จะทำงานอย่างไรภายใต้การโหลด


9

ฉันสร้างเว็บไซต์ Asp.net MVC และโฮสต์บนผู้ให้บริการโฮสต์ที่ใช้ร่วมกัน เนื่องจากเว็บไซต์ของฉันล้อมรอบแนวคิดทั่วไปมากมันอาจมีผู้ใช้พร้อมกันจำนวนมากในอนาคต

ดังนั้นฉันจึงคิดถึงวิธีทดสอบเว็บไซต์ของฉันเกี่ยวกับประสิทธิภาพในการโหลด เช่นเดียวกับเว็บไซต์จะทำงานอย่างไรเมื่อผู้ใช้ 100 หรือ 1,000 คนออนไลน์ในเวลาเดียวกันและท่องเว็บไซต์ สิ่งนี้จะทำให้ฉันเข้าใจว่าการสืบค้น LINQ ของฉันนั้นเขียนได้ดีหรือไม่

คำตอบ:


12

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

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

และสุดท้ายในฐานะนักพัฒนาเว็บที่ใส่ใจในประสิทธิภาพคุณควรดูที่YSlow :

YSlow วิเคราะห์ประสิทธิภาพของหน้าเว็บโดยตรวจสอบองค์ประกอบทั้งหมดในหน้ารวมถึงส่วนประกอบที่สร้างขึ้นแบบไดนามิกโดยใช้ JavaScript มันวัดประสิทธิภาพของหน้าและเสนอคำแนะนำสำหรับการปรับปรุง

YSlow สำหรับ Firefox ถูกรวมเข้ากับเครื่องมือพัฒนาเว็บไซต์ Firebug สำหรับ Firefox

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

อ่านเพิ่มเติม:

บน StackOverflow แน่นอน!


สำรวจวิธีแก้ไขปัญหาอื่น ๆ ก่อนที่จะจ่ายค่าสมัครสมาชิก loadimpact แน่นอน มีวิธีแก้ปัญหาที่คล้ายกันค่อนข้างน้อย ฉันรักมัน แต่งานจ่ายเงินไม่ใช่ฉัน :)
yannis

ฉันจะใช้การทดสอบฟรี .... ไม่ต้องการการทดสอบที่เข้มงวดในตอนนี้เนื่องจากมันไม่สมเหตุสมผลในขณะนี้ .... แค่ต้องการได้รับแนวคิด :-)
Pankaj Upadhyay

7

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

อย่างไรก็ตามสิ่งที่ฉันจะทำในสถานการณ์นั้นคือการเริ่มต้นโดยการทดสอบแยกในกล่องเฉพาะ (นี้อาจเป็นแล็ปท็อปของคุณเอง); ใช้เครื่องมือเช่นชุดทดสอบการโหลด Visual Studio หรือ JMeter (ซึ่งฉันไม่สามารถยืนได้) และสร้างชุดการทดสอบที่แสดงเส้นทางทั่วไปผ่านแอปพลิเคชันของคุณ (คุณควรได้รับข้อมูลเกี่ยวกับเส้นทางทั่วไปผ่านการใช้งาน ของ Google Analytics หากไม่สามารถใช้งานได้คุณสามารถใช้สิ่งที่คุณคิดว่าเป็นไปได้ แต่โปรดจำไว้ว่าสิ่งนี้จะไม่ให้พื้นฐานที่ถูกต้อง) จากนั้นทำการทดสอบแบบ ramp-up เริ่มต้นที่ 1 ผู้ใช้จากนั้นเพิ่มผู้ใช้อย่างช้า ๆ จนกว่าคุณจะได้รับการโหลดสูงสุดโดยประมาณ นั่นควรจะแสดงให้คุณเห็นว่าระบบของคุณมีภาพรวมที่ดีเพียงใด (ฉันชอบที่จะใช้เวลาเพิ่มขึ้นอีกเล็กน้อย

สิ่งสุดท้ายที่คุณต้องทำคือเรียกใช้เครื่องมือทำโปรไฟล์เช่น ANTS Performance Profiler ในขณะที่ทำการทดสอบ สิ่งนี้จะช่วยให้คุณสามารถระบุคิวรีและวิธีการที่ใช้เวลานานซึ่งจะทำให้คุณพอยน์เตอร์ชี้ว่าแอปพลิเคชันของคุณทำงานช้ามากเพียงใด (หนึ่งเคล็ดลับ: แทบจะไม่เคยจริง ๆ

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


ขอบคุณที่ทิ้งความแตกต่างระหว่างการทดสอบการโฮสต์กับเซิร์ฟเวอร์ของตัวเอง
Pankaj Upadhyay

3

คุณสามารถมองเข้าไปในเครื่องมือเช่นJMeterหรือบด

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


1

ฉันชอบ Loadimpact สำหรับการทดสอบความเครียด สิ่งหนึ่งที่ฉันมักจะใช้สำหรับการตรวจสอบอย่างรวดเร็วบนเว็บไซต์ของฉันคือ Apache Bench เมื่อฉันต้องการเรียกใช้การทดสอบขั้นสุดท้ายฉันจะมองไปที่บริการชำระเงิน

งานของฉันยังลงทุนใน WebLoads ซึ่งมีราคาแพงมาก แต่ช่วยให้เราสามารถทดสอบไซต์ทั้งหมดของเราภายใน ฉันไม่แนะนำเลย


0

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


0

สคริปต์ Autohotkey (AHK) สามารถจำลองผู้ใช้ที่เป็นมนุษย์ ปล่อยให้มันวิ่งได้ทั้งวัน

คุณสามารถปล่อยให้มันรันบนหลายกล่องเพื่อจำลองผู้ใช้ไม่กี่คน สิ่งที่ดีคือรูปแบบการทดสอบนั้นสมบูรณ์ภายใต้การควบคุมของคุณ คุณสามารถมี 1 AHK สคริปต์สแปมคุณลักษณะรายงานและดูว่ามันมีผลต่อผู้ใช้คุณสมบัติอื่น ๆ

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

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