เครื่องมือทดสอบประสิทธิภาพและโหลด ที่เหมาะสมนั้นขึ้นอยู่กับสิ่งที่คุณต้องการวัด การทดสอบลิงก์ การสร้างทราฟฟิก WAN และการจำลองผู้ใช้ API จะตอบคำถามที่แตกต่างกัน สำหรับเครือข่าย ให้วัดปริมาณงาน ความหน่วง การสูญเสียแพ็กเก็ต และความผันผวนของเวลา สำหรับแอปพลิเคชัน ให้ติดตามเวลาตอบสนอง อัตราการร้องขอ และข้อผิดพลาดเมื่อโหลดเพิ่มขึ้น
ทดสอบในสภาพแวดล้อมที่มีการควบคุมและได้รับอนุญาต: ปริมาณการรับส่งข้อมูลที่สร้างขึ้นอาจทำให้คุณภาพการบริการลดลง บันทึกการตั้งค่าการทดสอบ เส้นทาง และปริมาณการรับส่งข้อมูลที่แข่งขันกัน เพื่อให้คุณสามารถตีความผลลัพธ์ได้
เส้นทางทดสอบเครือข่ายเชิงแนวคิด พร้อมการวัดปริมาณงานและเวลาแฝง
เลือกเครื่องมือสำหรับเลเยอร์ที่คุณกำลังทดสอบ
ปริมาณข้อมูลที่ส่ง ผ่าน (Throughput) คือปริมาณข้อมูลที่ส่งผ่านในช่วงเวลาหนึ่ง ซึ่งแตกต่างจากแบนด์วิดท์ที่กำหนดไว้ของลิงก์ ความหน่วง (Latency) วัดเวลาในการส่งหรือตอบสนอง ในขณะที่ความผันผวน (Jitter) คือความแปรปรวนของความล่าช้าของแพ็กเก็ต เครื่องมือสร้างปริมาณการรับส่งข้อมูล (Traffic generators) สร้างภาระ แต่ไม่ได้วัดพฤติกรรมของแอปพลิเคชัน เครื่องมือสร้างภาระบนเว็บ (Web load tools) จำลองคำขอ ไม่ใช่ปริมาณการรับส่งข้อมูลอีเธอร์เน็ตดิบ
เครื่องมือทดสอบประสิทธิภาพและโหลดแปดชนิด
1. iPerf3: เครื่องมือวัดปริมาณการรับส่งข้อมูลของเครือข่าย IP
iPerf3 เป็นเครื่องมือแบบบรรทัดคำสั่งฟรีที่ดูแลโดย ESnet ที่ห้องปฏิบัติการแห่งชาติลอว์เรนซ์เบิร์กลีย์ ใช้งานเซิร์ฟเวอร์ที่ปลายทางหนึ่งและไคลเอ็นต์ที่ปลายทางอีกด้านหนึ่งเพื่อวัดแบนด์วิดท์ IP ที่ทำได้ กำหนดค่าระยะเวลา สตรีมแบบขนาน และ TCP หรือ UDP ผลลัพธ์จะรวมถึงปริมาณงานและอัตราการสูญเสีย UDP เป็นเครื่องมือตรวจสอบเบื้องต้นที่ดีสำหรับเส้นทาง LAN, VPN หรือ WAN แต่ไม่ได้จำลองเซสชันแอปพลิเคชันหรือความเร็วของดิสก์
2. ทดสอบความเร็ว LAN: ตรวจสอบประสิทธิภาพการถ่ายโอนไฟล์
โปรแกรม LAN Speed Test วัดความเร็วในการถ่ายโอนข้อมูลไปยังโฟลเดอร์ที่แชร์ ซึ่งทำให้ผลลัพธ์สามารถนำไปเปรียบเทียบกับการคัดลอกไฟล์ไปยัง NAS ได้ง่าย การทดสอบนี้รวมถึงค่าใช้จ่ายในการจัดเก็บข้อมูลและการแชร์ไฟล์ ตลอดจนเครือข่ายด้วย Totusoft ยังมีโปรแกรม LAN Speed Test Server ซึ่งสามารถทดสอบความเร็วระหว่างหน่วยความจำของคอมพิวเตอร์เพื่อลดปัญหาคอขวดของดิสก์ ปัจจุบันผู้จำหน่ายระบุเวอร์ชัน 4.4 สำหรับ Windows และ macOS โดยโหมด Lite สามารถใช้งานได้ แต่คุณสมบัติขั้นสูงบางอย่างถูกปิดใช้งาน
3. SolarWinds WAN Killer: สร้างปริมาณการรับส่งข้อมูล WAN ที่ควบคุมได้
WAN Killer ซึ่งเป็นส่วนหนึ่งของ SolarWinds Engineer's Toolset สำหรับเดสก์ท็อป จะสร้างทราฟฟิกแบบสุ่มไปยังเป้าหมายที่เลือกไว้ สามารถตั้งค่าโปรโตคอล พอร์ต ขนาดแพ็กเก็ต แบนด์วิดท์วงจร และเปอร์เซ็นต์โหลดได้ ช่วยในการทดสอบพฤติกรรมของลิงก์หรือการจัดลำดับความสำคัญของทราฟฟิกภายใต้แรงกดดัน ควรใช้มอนิเตอร์แยกต่างหากเพื่อวัดผลกระทบ ส่วนประกอบของ Windows นี้ไม่ใช่การทดสอบผู้ใช้แบบครบวงจร
4. Ostinato: สร้างโปรไฟล์การรับส่งข้อมูลระดับแพ็กเก็ต
Ostinato มีตัวควบคุมแบบกราฟิกและเอเจนต์สร้างทราฟฟิกสำหรับการสร้างสตรีมเลเยอร์ 2 และเลเยอร์ 3 หลายรายการ การเล่นซ้ำการจับแพ็กเก็ต และอัตราการส่งที่แตกต่างกัน มีประโยชน์สำหรับการตรวจสอบอุปกรณ์เครือข่าย การจัดการโปรโตคอล และการผสมผสานทราฟฟิกแบบกำหนดเอง ชุดคุณสมบัติของมันแตกต่างกันไปตามใบอนุญาต และผู้จำหน่ายระบุว่าไม่รองรับการเชื่อมต่อ TCP แบบมีสถานะ ดังนั้นควรใช้เครื่องมืออื่นเมื่อการทดสอบของคุณขึ้นอยู่กับเซสชันแอปพลิเคชัน TCP ที่สมจริง
5. Cisco TRex: ทดสอบความทนทานของอุปกรณ์เครือข่ายในระดับขนาดใหญ่
Cisco TRex เป็นโปรแกรมสร้างทราฟฟิกแบบโอเพนซอร์สที่ใช้ DPDK โดยมีโหมดการทำงานทั้งแบบไร้สถานะและมีสถานะ โปรแกรมนี้เหมาะสำหรับวิศวกรที่ทดสอบเราเตอร์ ไฟร์วอลล์ และอุปกรณ์เครือข่ายอื่นๆ ที่ต้องการทดสอบปริมาณทราฟฟิกสูง การตั้งค่า TRex มีความซับซ้อนกว่าโปรแกรมวัดปริมาณทราฟฟิกทั่วไป ดังนั้น TRex จึงเหมาะกับห้องปฏิบัติการเฉพาะที่มีฮาร์ดแวร์ที่เข้ากันได้และแผนการทดสอบที่กำหนดไว้ชัดเจน
การทดสอบโหลดแอปพลิเคชันเชิงแนวคิด: จำลองความต้องการใช้งานไปยังบริการ พร้อมทั้งติดตามผลลัพธ์ที่สำคัญ
6. Apache JMeter: ทดสอบโหลดบริการผ่านโปรโตคอลทั่วไป
Apache JMeter เป็นแอปพลิเคชันทดสอบแบบโอเพนซอร์สสำหรับเว็บ, API, ฐานข้อมูล, ระบบส่งข้อความ และบริการอื่นๆ แผนการทดสอบของ JMeter สามารถจำลองคำขอ ข้อมูล การตรวจสอบ และการใช้งานพร้อมกันของผู้ใช้ได้ JMeter ทำงานในระดับโปรโตคอล ไม่ได้ประมวลผล JavaScript เหมือนกับเบราว์เซอร์ Apache แนะนำให้ทำการทดสอบโหลดในโหมดบรรทัดคำสั่งมากกว่าการทดสอบหนักๆ จาก GUI แล้วตรวจสอบผลลัพธ์ที่ได้
7. Grafana k6: ปริมาณงานและข้อจำกัดด้านประสิทธิภาพของ Script API
Grafana k6 เป็นเครื่องมือทดสอบประสิทธิภาพแบบ code-first ที่ใช้สคริปต์ JavaScript ในการกำหนดคำขอ สถานการณ์ และเกณฑ์ต่างๆ สถานการณ์จำลองรูปแบบการโหลดที่แตกต่างกัน ในขณะที่เกณฑ์จะเปลี่ยนตัวชี้วัดต่างๆ เช่น ระยะเวลาการร้องขอ ให้เป็นเกณฑ์ผ่าน/ไม่ผ่าน ซึ่งสามารถเรียกใช้ใน CI ได้ เลือกใช้ k6 เมื่อแผนการทดสอบควรอยู่ควบคู่ไปกับโค้ดแอปพลิเคชัน และคุณต้องการการตรวจสอบที่ทำซ้ำได้ ตรวจสอบให้แน่ใจว่าสคริปต์แสดงถึงพฤติกรรมของผู้ใช้จริงก่อนที่จะนำผลลัพธ์ไปใช้เป็นการคาดการณ์ในสภาพแวดล้อมการผลิต
8. Wireshark: ตรวจสอบสิ่งที่เกิดขึ้นบนเครือข่าย
Wireshark ทำหน้าที่จับภาพและวิเคราะห์แพ็กเก็ต ไม่ได้สร้างภาระงานหรือให้ประสิทธิภาพการทำงานแบบสแตนด์อะโลน ควรใช้ร่วมกับ iPerf3 ซึ่งเป็นโปรแกรมสร้างทราฟฟิก หรือโปรแกรมทดสอบแอปพลิเคชัน เพื่อตรวจสอบการส่งซ้ำ การแลกเปลี่ยนโปรโตคอล และจังหวะเวลาของแพ็กเก็ต ตัวกรองการจับภาพจะจำกัดสิ่งที่ถูกบันทึก ในขณะที่ตัวกรองการแสดงผลจะจำกัดสิ่งที่คุณเห็นหลังจากจับภาพแล้ว เลือกอินเทอร์เฟซเครือข่ายและจุดจับภาพที่เหมาะสม และอย่าลืมว่าคุณอาจต้องมีสิทธิ์ระดับสูงสำหรับการจับภาพแบบเรียลไทม์
ภาพแสดงมุมมองการจับภาพแพ็กเก็ตเชิงแนวคิด สำหรับตรวจสอบปริมาณการรับส่งข้อมูลที่เกิดขึ้นระหว่างการทดสอบ
ตัวเลือกด่วน
วัดปริมาณข้อมูลผ่านลิงก์: เริ่มต้นด้วย iPerf3; ใช้ LAN Speed Test เมื่อต้องการวัดประสิทธิภาพการคัดลอกไฟล์สร้างปริมาณการรับส่งข้อมูลเครือข่าย: ใช้ WAN Killer สำหรับการควบคุมปริมาณการรับส่งข้อมูลแบบตรงไปตรงมา หรือใช้ Ostinato และ TRex สำหรับการสร้างโปรไฟล์แพ็กเก็ตแบบกำหนดเองทดสอบประสิทธิภาพของแอปพลิเคชันหรือ API: เปรียบเทียบวิธีการวางแผนการทดสอบแบบภาพของ JMeter กับสคริปต์แบบเขียนโค้ดก่อนของ k6ตรวจสอบอาการ: บันทึกข้อมูลด้วย Wireshark ในขณะที่ทำการทดสอบซ้ำ
เพื่อให้ได้ผลลัพธ์ที่เปรียบเทียบได้ ให้บันทึกปลายทาง ระยะเวลา โปรโตคอล และปริมาณการรับส่งข้อมูลพร้อมกัน ทำซ้ำสถานการณ์เดียวกันหลังจากมีการเปลี่ยนแปลง โดยตรวจสอบความอิ่มตัวของเครือข่าย เซิร์ฟเวอร์ พื้นที่จัดเก็บ หรือไคลเอ็นต์ไปด้วย