การประเมินประสิทธิภาพระบบสารสนเทศด้วย JMETER
ในการพัฒนาระบบ web applciation ขึ้นมานั้น ประสิทธิภาพของ web application จะเป็นสิ่งสำคัญซึ่งอาจจะไปเกี่ยวข้องกับการทำงานของระบบงานต่าง ๆ ที่อาจทำให้ระบบช้าไปทั้งระบบ หรือที่แย่ไปกว่านั้นทำให้ระบบล่มไปเลยและสาเหตุส่วนใหญ่ก็จะมาจาก web application ที่เราเป็นคนพัฒนาขึ้นมาด้วย ซึ่งหลายคนอาจจะมองว่าปัญหาน่าจะเกิดจาก server ช้า ระบบ database tuning ไม่ดี หรือระบบ network ออกแบบมาไม่ดี และในที่สุดแล้ว อาจจะสงสัยที่ web application ที่พัฒนาขึ้นมา ดังนั้น ถ้าเราต้องการวัดประสิทธิภาพของระบบว่ามีประสิทธิภาพมากน้อยแค่ไหนนั้น เราสามารถใช้โปรแกรมในการทดสอบระบบต่าง ๆ อาทิ เช่น
software ที่จะช่วยในเรื่องการทดสอบประสิทธิภาพของ application ที่ดี ใช้งานง่าย ฟรี และเป็นopensource มีชื่อว่า JMeter Software ตัวนี้เป็นหนึ่งในหลาย ๆ project ของ Apache พัฒนาโดยใช้ภาษา java 100% ซึ่งสามารถใช้งานได้กับทุกภาษาโปรแกรมที่ทำงานอยู่บน HTTP Server
สำหรับการใช้งานโปรแกรม JMeter นั้น มีขั้นตอน ดังนี้
- เตรียม web application ที่จะทำการทดสอบให้เรียบร้อย จากนั้น download JMeter เวอร์ชั่นล่าสุดได้ที่ JMeter website และเราต้องมี JDK ในเครื่องด้วยตั้งแต่ JDK 1.4 เป็นต้นไป
- แตกไฟล์ที่โหลดมาก่อน จากนั้นเข้าไปที่ directory /bin แล้ว run JMeter สำหรับ windows ให้เรียกไฟล์ jmeter.bat แต่ถ้าเป็น linux ให้เรียก jmeter.sh
- ทำการตั้งค่าทดสอบในโปรแกรม JMeter (ในที่นี้ ผู้เขียนได้ทำการทดสอบระบบฐานข้อมูลกล้วยไม้ไทย https://oc.mju.ac.th/)
ทำการทดสอบ โดยมีรายละเอียดต่าง ๆ ของโปรแกรม JMeter ดังนี้
ผลการทดสอบประเมินประสิทธิภาพของระบบโดยใช้โปรแกรม JMeter ทดสอบค่าต่าง ๆ ได้ผลลัพธ์ ดังต่อไปนี้
จากกราฟแสดงให้เห็นว่า ค่าเฉลี่ยเวลาโดยรวม (Average) ที่ส่ง request ไปหา server = 59 ms ค่าเวลากึ่งกลาง (Median) = 52 ms การกระจายตัว (Deviation) = 35 ms และค่าประมวลผล request ต่อนาทีของ Server (Throughput) = 4,239.564 request ต่อนาที
จากกราฟแสดงให้เห็นว่า ค่าเฉลี่ยเวลาโดยรวม (Average) ที่ส่ง request ไปหา server = 62 ms ค่าเวลากึ่งกลาง (Median) = 50 ms การกระจายตัว (Deviation) = 52 ms และค่าประมวลผล request ต่อนาทีของ Server (Throughput) = 4,172.172 request ต่อนาที
จากกราฟแสดงให้เห็นว่า ค่าเฉลี่ยเวลาโดยรวม (Average) ที่ส่ง request ไปหา server = 68 ms ค่าเวลากึ่งกลาง (Median) = 52 ms การกระจายตัว (Deviation) = 88 ms และค่าประมวลผล request ต่อนาทีของ Server (Throughput) = 3,815.78 request ต่อนาที
ในการวัดประสิทธิภาพของระบบนั้น เราสามารถพิจารณาที่ Throughput ของระบบ ถ้าจำนวน request สูงขึ้นมาเรื่อย ๆ ค่าของ Throughput ก็เพิ่มมากขึ้นเช่นกัน เมื่อไรก็ตามที่จำนวน request และ จำนวนการประมวลผลของระบบการทดสอบเริ่มนิ่ง นั่นแสดงว่า ค่าของ Throughput ของระบบนิ่งหรือเสถียรแล้วเช่นกัน ซึ่งถ้าการเพิ่มจำนวน request มันทำให้ค่า Throughput ลดลงมา แสดงว่ามีส่วนใดส่วนหนึ่งในระบบงานเกิดปัญหาคอขวดมาแล้ว หรือนั่นคือ เกินขีดความสามารถของระบบในตอนนั้น เช่น เข้าคิวเพื่อรอทำงานนานเกินไป เช่น CPU, database และ network เป็นต้น ส่งผลให้ response time สูงขึ้นมาก จนเกิด timeout โดยจำเป็นต้องนำข้อมูลจากระบบ monitoring อื่น ๆ เข้ามาพิจารณาด้วย เช่น Monitoring server, access log เป็นต้น เพื่อทำให้การวิเคราะห์ผล มีประสิทธิภาพและถูกต้องมากยิ่งขึ้น ซึ่งค่าของ Throughput นั้นเป็นแนวคิดหลักในการทดสอบประสิทธิภาพของระบบ
อ้างอิง
- วัดประสิทธิภาพของ Web Application ด้วย JMeter สืบค้นเมื่อ 15 ธันวาคม 2558, จาก http://oracle-java.blogspot.com/2007/08/web-application-jmeter.html
- พื้นฐานเกี่ยวกับ Performance testing สืบค้นเมื่อ 15 ธันวาคม 2558, จากhttp://www.somkiat.cc/performance-testing-about-throughput/
- JMeter :: ทดสอบประสิทธิภาพของ Web application สืบค้นเมื่อ 15 ธันวาคม 2558, จาก http://www.narisa.com/forums/index.php?app=blog&blogid=9&showentry=2873
- การพัฒนาระบบฐานข้อมูลกล้วยไม้ไทย, นายสมชาย อารยพิทยา และคณะ, รายงานผลการวิจัย, 2558
- ระบบฐานข้อมูลกล้วยไม้ไทย สืบค้นเมื่อ 15 ธันวาคม 2558, จาก https://oc.mju.ac.th/