การทดสอบความสามารถในการปรับขนาดคืออะไร? เรียนรู้ด้วยตัวอย่าง

⚡ สรุปอย่างชาญฉลาด

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

  • 🔘 ความหมาย: การทดสอบที่ไม่เกี่ยวข้องกับการทำงานจริง ซึ่งตรวจสอบว่าระบบยังคงทำงานได้ในระดับที่ยอมรับได้หรือไม่เมื่อความต้องการเพิ่มขึ้น
  • ☑️ สองทิศทาง: การขยายกำลังในแนวตั้งจะเพิ่มกำลังให้กับเครื่องจักรหนึ่งเครื่อง ในขณะที่การขยายกำลังในแนวนอนจะเพิ่มจำนวนเครื่องจักรที่อยู่ด้านหลังตัวปรับสมดุล
  • ตัวชี้วัดที่สำคัญ: เวลาตอบสนอง, อัตราการประมวลผล, การใช้งาน CPU และหน่วยความจำ และการใช้งานเครือข่าย คือ tracตรวจสอบทุกขั้นตอนการโหลด
  • 🧪 วิธีการ: ปริมาณการใช้งานจะเพิ่มขึ้นทีละน้อยตามแผนที่วางไว้ จนกว่าตัวชี้วัดใดตัวหนึ่งจะเกินเกณฑ์ ซึ่งจะบ่งชี้ถึงขีดจำกัดความสามารถในการปรับขนาด
  • 🛠️ เครื่องมือ: JMeterk6, Gatling, Locust และ LoadRunner สร้างโหลดแบบกระจายและบันทึกผลลัพธ์โดยอัตโนมัติ
  • 📈 ผล: การวางแผนกำลังการผลิตจะอิงตามหลักฐานแทนการคาเดา ทำให้การปล่อยเวอร์ชันใหม่สามารถรองรับปริมาณการใช้งานที่เพิ่มขึ้นอย่างฉับพลันได้

การทดสอบความสามารถในการขยายขนาดคืออะไร

การทดสอบความสามารถในการปรับขนาดคืออะไร

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

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

เหตุใดจึงต้องทำการทดสอบความสามารถในการขยายขนาด?

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

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

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

การทดสอบความสามารถในการปรับขนาด (Scalability Testing) คือการวัดประสิทธิภาพของระบบเมื่อปริมาณงานเพิ่มขึ้น

ประเภทของการทดสอบความสามารถในการขยายขนาด

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

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

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

สิ่งที่ต้องทดสอบในการทดสอบความสามารถในการขยายขนาด

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

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

กลยุทธ์การทดสอบสำหรับการทดสอบความสามารถในการขยายขนาด

กลยุทธ์การทดสอบสำหรับการทดสอบความสามารถในการขยายขนาด (Scalability Testing) จะแตกต่างกันไปขึ้นอยู่กับประเภทของแอปพลิเคชันที่กำลังทดสอบ หากแอปพลิเคชันเข้าถึง... ฐานข้อมูลพารามิเตอร์ในการทดสอบจะรวมถึงขนาดของฐานข้อมูลที่สัมพันธ์กับจำนวนผู้ใช้ และอื่นๆ

ข้อกำหนดเบื้องต้นสำหรับการทดสอบความสามารถในการปรับขนาด

  • ความสามารถในการกระจายโหลด — ตรวจสอบว่าเครื่องมือทดสอบโหลดรองรับการสร้างโหลดจากเครื่องจักรหลายเครื่องและควบคุมจากจุดศูนย์กลางหรือไม่
  • Operaระบบ ting — ตรวจสอบดูสิ ระบบปฏิบัติการ ตัวแทนสร้างโหลดและตัวควบคุมหลักทดสอบโหลดทำงานภายใต้...
  • หน่วยประมวลผล — ตรวจสอบว่าตัวแทนผู้ใช้เสมือนและตัวควบคุมหลักสำหรับการทดสอบโหลดต้องการ CPU ประเภทใด
  • หน่วยความจำ — ตรวจสอบว่าหน่วยความจำขนาดเท่าใดจึงจะเพียงพอสำหรับเอเจนต์ผู้ใช้เสมือนและโหลดมาสเตอร์สำหรับการทดสอบ
  • สภาพแวดล้อมการทดสอบ — ตรวจสอบว่า สภาพแวดล้อมการทดสอบ สะท้อนกระบวนการผลิตได้อย่างใกล้ชิดจนสามารถนำผลลัพธ์ไปปรับใช้ได้

วิธีการทดสอบ Scalability

  1. กำหนดกระบวนการที่ทำซ้ำได้สำหรับการดำเนินการทดสอบความสามารถในการขยายขนาดตลอดวงจรชีวิตของแอปพลิเคชัน
  2. กำหนดเกณฑ์สำหรับการขยายขนาด
  3. คัดเลือกเครื่องมือซอฟต์แวร์ที่จำเป็นสำหรับรันการทดสอบโหลด
  4. ตั้งค่าสภาพแวดล้อมการทดสอบและกำหนดค่าฮาร์ดแวร์ที่จำเป็นสำหรับการดำเนินการทดสอบความสามารถในการปรับขนาด
  5. วางแผนสถานการณ์การทดสอบรวมถึงการทดสอบความสามารถในการขยายขนาด
  6. สร้างและตรวจสอบสคริปต์ผู้ใช้เสมือน
  7. สร้างและตรวจสอบสถานการณ์การทดสอบโหลด
  8. ดำเนินการทดสอบ
  9. ประเมินผล
  10. จัดทำรายงานที่จำเป็น

แผนทดสอบความสามารถในการปรับขนาด

ก่อนที่จะเริ่มสร้างชุดทดสอบจริง ๆ ให้วางแผนการทดสอบอย่างละเอียดเสียก่อน นี่เป็นขั้นตอนสำคัญที่จะช่วยให้มั่นใจได้ว่าชุดทดสอบนั้นสอดคล้องกับข้อกำหนดของแอปพลิเคชัน

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

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

ตัวอย่างการทดสอบความสามารถในการขยายขนาด

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

จากนั้น การทดสอบจะรันสคริปต์ browse-search-cart-checkout เดียวกันที่จำนวนผู้ใช้เสมือน 250, 500, 1,000, 1,500 และ 2,000 คน เวลาตอบสนองคงที่อยู่ที่ประมาณสองวินาทีจนถึง 1,000 คน เพิ่มขึ้นเป็น 2.8 วินาทีที่ 1,500 คน และถึงเก้าวินาทีที่ 2,000 คน ในขณะที่ CPU ของฐานข้อมูลทำงานที่ 98 เปอร์เซ็นต์ ดังนั้น ขีดจำกัดด้านความสามารถในการขยายขนาดจึงอยู่ที่ประมาณ 1,500 คน และคอขวดอยู่ที่ส่วนของฐานข้อมูล ไม่ใช่เซิร์ฟเวอร์แอปพลิเคชันที่ทีมวางแผนจะเพิ่มเข้ามา

เครื่องมือทดสอบความสามารถในการขยายขนาด

การทดสอบความสามารถในการขยายขนาด (Scalability Testing) จำเป็นต้องใช้เครื่องมือที่สามารถสร้างภาระงานจากเครื่องหลายเครื่องพร้อมกันและรายงานผลลัพธ์ไปยังส่วนกลางได้ โดยปกติแล้วการเลือกเครื่องมือจะขึ้นอยู่กับภาษาหลักที่ทีมใช้และโปรโตคอลที่กำลังทดสอบ

เครื่องมือ การเขียนสคริปต์ เหมาะที่สุดสำหรับ
Apache JMeter แผนการทดสอบ GUI บวก XML Java ตาม รองรับโปรโตคอลหลากหลายประเภท รวมถึง JDBC, JMS, LDAP และ SOAP
กราฟาน่า เค6 Javaสคริปต์หรือ TypeScript การทดสอบ API และไมโครเซอร์วิสที่เชื่อมโยงเข้ากับไปป์ไลน์ CI/CD
Gatling JavaDSL ของ Kotlin หรือ Scala จำนวนผู้ใช้งานเสมือนสูงต่อตัวจ่ายสารฉีด พร้อมรายงาน HTML ที่ละเอียดครบถ้วน
ปาทังกา ที่ราบ Python Python ทีมที่ต้องการขยายขีดความสามารถของไคลเอ็นต์ให้เหนือกว่า HTTP
โหลดรันเนอร์ สคริปต์ที่คล้ายกับภาษา C ที่บันทึกไว้ใน VuGen ระบบคอมพิวเตอร์ขนาดใหญ่ที่มีแอปพลิเคชันแบบดั้งเดิมและแอปพลิเคชันสำเร็จรูป

ตัวรันที่โฮสต์บนคลาวด์ เช่น BlazeMeterLoadView และ Gatling Enterprise เป็นโปรแกรมที่ใช้บนกลไกเหล่านี้หลายตัว และควรพิจารณาใช้เมื่อการทดสอบต้องการผู้ใช้เสมือนจริงหลายหมื่นคน หรือปริมาณการใช้งานจากหลายภูมิภาคทางภูมิศาสตร์ สามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับหมวดหมู่นี้ได้ในคู่มือ เครื่องมือทดสอบประสิทธิภาพ.

ความท้าทายและแนวปฏิบัติที่ดีที่สุดในการทดสอบความสามารถในการขยายขนาด

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

ความท้าทายทั่วไป

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

ปฏิบัติที่ดีที่สุด

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

การทดสอบความสามารถในการขยายขนาดเทียบกับการทดสอบการรับโหลด

สองอย่างนี้มักถูกเข้าใจผิดเพราะทั้งคู่ต่างก็ใช้โหลด ความแตกต่างอยู่ที่คำถามที่แต่ละอย่างตอบ: การทดสอบความสามารถในการขยายขนาด (Scalability Testing) ถามว่าระบบสามารถเติบโตได้ไกลแค่ไหน ในขณะที่... โหลดการทดสอบ ถามว่าสามารถรับมือกับภาระที่คาดการณ์ไว้ได้หรือไม่

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

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

คำถามที่พบบ่อย

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

ใช่แล้ว ร่างเอกสารเกี่ยวกับนักบินผู้ช่วยและตัวแทนที่คล้ายคลึงกัน k6 หรือสถานการณ์จำลอง Locust สามารถสร้างข้อมูลทดสอบแบบพารามิเตอร์และวางโครงร่างขั้นตอนไปป์ไลน์ CI ได้อย่างรวดเร็ว วิศวกรด้านประสิทธิภาพยังคงต้องกำหนดเวลาคิดที่สมจริง การผสมผสานภาระงาน และเกณฑ์การผ่าน เนื่องจากสิ่งเหล่านี้มาจากพฤติกรรมในสภาพแวดล้อมการผลิต

ความสามารถในการปรับขนาด (Scalability) คือศักยภาพในการเติบโตเมื่อมีการเพิ่มทรัพยากร ไม่ว่าจะใช้เวลาเพียงไม่กี่นาทีหรือหลายเดือน ความยืดหยุ่น (Elasticity) คือความสามารถในการเพิ่มและลดทรัพยากรเหล่านั้นโดยอัตโนมัติเมื่อความต้องการเปลี่ยนแปลง แล้วจึงกลับไปสู่ขนาดที่เล็กลงในภายหลัง

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

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

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

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

การเขียนสคริปต์ใน Javaสคริปต์ Python or Javaมีความรู้พื้นฐานเกี่ยวกับ HTTP และพฤติกรรมของฐานข้อมูล สามารถอ่านข้อมูลเมตริกของเซิร์ฟเวอร์และคอนเทนเนอร์ได้ และมีความสามารถในการแยกแยะเปอร์เซ็นไทล์จากค่าเฉลี่ยได้ ความคุ้นเคยกับคลาวด์และ CI/CD กลายเป็นสิ่งจำเป็นอย่างยิ่ง

สรุปโพสต์นี้ด้วย: