รูปแบบการวัด ของ IOPS

เปรียบเทียบลักษณะการเข้าถึงข้อมูลแบบต่อเนื่อง กับแบบสุ่ม

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

รูปแบบการวัด IOPS ที่พบเห็นได้ทั่วไป

รูปแบบการวัดคำอธิบาย
Random Read IOPSจำนวนปฏิบัติการอ่าน จากการเข้าถึงตำแหน่งแบบสุ่มที่ทำได้ในหนึ่งวินาทีโดยเฉลี่ย
Random Write IOPSจำนวนปฏิบัติการเขียน จากการเข้าถึงตำแหน่งแบบสุ่มที่ทำได้ในหนึ่งวินาทีโดยเฉลี่ย
Sequential Read IOPSจำนวนปฏิบัติการอ่าน จากการเข้าถึงตำแหน่งข้อมูลแบบต่อเนื่องที่ทำได้ในหนึ่งวินาทีโดยเฉลี่ย
Sequential Write IOPSจำนวนปฏิบัติการเขียน จากการเข้าถึงตำแหน่งข้อมูลแบบต่อเนื่องที่ทำได้ในหนึ่งวินาทีโดยเฉลี่ย

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

IOPS ∗ DataTransferSize = BytesPerSec {\displaystyle {\text{IOPS}}*{\text{DataTransferSize}}={\text{BytesPerSec}}} (และสุดท้ายมักจะแปลงจากไบต์ต่อวินาทีเป็นเมกะไบต์ต่อวินาที)

ในฮาร์ดดิสก์บางชนิดมีความสามารถในการจัดลำดับก่อนหลังการทำงานของคำสั่งที่เข้ามาพร้อม ๆ กันได้ เช่นเทคนิค Tagged Command Queing (TCQ) และ Native Command Queuing (NCQ) การจัดลำดับก่อนหลังการทำงานนั้นเป็นการลดระยะทางการเคลื่อนที่ของหัวอ่าน และช่วยลดระยะเวลารอการหมุนของจานได้มากจึงส่งผลทำให้ IOPS สูงขึ้นได้มากเช่นกัน ซึ่งต้องอาศัยวงจรควบคุมที่มีความซับซ้อนมากขึ้น ทำให้ฮาร์ดดิสก์ SATA ส่วนใหญ่ในท้องตลาดไม่มีความสามารถนี้ติดตัวมาด้วย ส่วนฮาร์ดดิสก์ระดับองค์กร เช่น Western Digital Raptor และ Seagate Barracuda NL สามารถเพิ่ม IOPS ได้มากถึงเท่าตัวในกรณีที่มีคำสั่งเข้ามาในคิวเป็นปริมาณมาก ๆ[1]

ฮาร์ดดิสก์ทั่วไปมี IOPS ของการอ่านและเขียนเท่า ๆ กัน แต่โซลิตสเตตไดรฟ์แบบแฟลชนั้นความสามารถในการเขียนด้อยกว่าการอ่านอย่างเห็นได้ชัด เนื่องจากไม่สามารถเขียนทับไปยังเซลล์ข้อมูลได้โดยตรง ต้องอาศัยการลบทั้งบล็อกข้อมูลซึ่งก็ต้องทำการคัดลอกข้อมูลบางส่วนไปยังบล็อกอื่นก่อนเรียกกระบวนการนี้ว่า garbage collection[2][3][4] จึงเป็นเหตุผลที่ว่าการทดสอบ IOPS จึงต้องกำหนดให้แน่ชัดว่าจะวัดในส่วนการเขียน หรือการอ่าน หรือทั้งคู่และเป็นอัตราส่วนเท่าไหร่

โซลิดสเตตไดรฟ์ยุคใหม่ เช่น Intel X25-E มีค่า IOPS สูงถึง 10,000 IOPS การทดสอบโดย Xssist โดยใช้โปรแกรม IOmeter, การส่งข้อมูลคราวละ 4 กิโลไบต์, การเข้าถึงแบบสุ่ม, อัตราส่วนการ อ่าน/เขียน อยู่ที่ 70/30 และส่งคำสั่งพร้อมกัน 4 คำสั่ง ตัวเลข 10,000 IOPS จะตกลงมาอยู่ที่ 4,000 IOPS ใน 8 นาที และแกว่งระหว่าง 3,000 ถึง 4,000 ตั้งแต่นาทีที่ 50 และเป็นเช่นนี้ต่อไปในการทดสอบกว่า 8 ชั่วโมง[5] แต่อย่างไรก็ดีตัวเลข 3,000 IOPS นั้นก็สูงกว่าฮาร์ดดิสก์ที่สามารถทำได้ในหลักร้อย IOPS อยู่มาก และโซลิดสเตตไดรฟ์บางตัวเช่น OCZ RevoDrive 3 x2 PICe ซึ่งใช้ตัวควมคุม SandForce ได้แสดงให้เห็นว่าความเร็วในการเขียนกับความเร็วในการอ่านห่างกันไม่มากอย่างที่เป็นมาในอดีต[6]