ทำไม IOPS ถึงสำคัญ?


32

ฉันเข้าใจว่า IOPS และปริมาณงานคืออะไร ทรูพุตวัดการไหลของข้อมูลในขณะที่ MB / s และ IOPS บอกว่ามีการดำเนินการ I / O กี่ครั้งต่อวินาที

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

ทำไม IOPS ถึงสำคัญ? เหตุใด AWS จึงแสดงบทบัญญัติในการจัดเก็บเป็นส่วนใหญ่ใน IOPS IOPS เกี่ยวข้องกับปริมาณงาน (MB / s) ที่ไหนมากกว่ากัน


แก้ไข:

บางคนกำลังมองหาคำถามนี้ราวกับว่าฉันถามว่าการเข้าถึงแบบสุ่มคืออะไรและส่งผลอย่างไรต่อประสิทธิภาพการทำงานหรือการทำงานของ HDD และ SSD ... แม้ว่าฉันคิดว่าข้อมูลนี้มีประโยชน์สำหรับผู้ที่เพิ่งเริ่มพฤติกรรมการจัดเก็บข้อมูล และนี่ไม่ใช่เป้าหมายของคำถามคำถามคือเกี่ยวกับ"ฉันจะได้รับข้อมูลชิ้นใหม่เมื่อฉันเห็นหมายเลข IOPS ว่าฉันจะไม่เห็นหมายเลข throughput (MB / s)"



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

คำตอบ:


32

ทางเข้า

ปริมาณงานมีประโยชน์เมื่อคุณทำสิ่งต่าง ๆ เช่นการคัดลอกไฟล์ เมื่อคุณทำเกือบทุกอย่างมันจะสุ่มอ่านและเขียนข้ามดิสก์ที่จะ จำกัด คุณ

IOPS

โดยทั่วไปแล้ว IOPS จะระบุขนาดของแต่ละแพ็กเก็ตข้อมูล ตัวอย่างเช่น AWS gp2 สามารถทำ 10,000 IOPS ที่มีขนาดบรรทุกได้16 KiB ซึ่งคูณด้วย 160MiB / วินาที อย่างไรก็ตามอาจไม่น่าเป็นไปได้ที่คุณจะใช้ขนาดบรรทุกเต็มรูปแบบตลอดเวลาดังนั้นปริมาณงานจริงอาจต่ำกว่า NB KiB คือ 1024 ไบต์, KB คือ 1000 ไบต์

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

สถานการณ์

พิจารณาสถานการณ์เหล่านี้:

  • กำลังบูตพีซีของคุณ ลองพิจารณาถึงความแตกต่างระหว่าง SSD และดิสก์หมุนรอบตัวในคอมพิวเตอร์ของคุณซึ่งเป็นสิ่งที่หลาย ๆ คนเคยสัมผัสมาก่อน ด้วยดิสก์ที่หมุนได้เวลาในการบู๊ตอาจใช้เวลาหนึ่งนาทีในขณะที่ SSD สามารถลดลงได้ถึง 10 - 15 วินาที นี่เป็นเพราะ IOPS ที่สูงขึ้นนำไปสู่เวลาในการตอบสนองที่ลดลงเมื่อมีการร้องขอข้อมูล ทรูพุตของดิสก์หมุนได้ค่อนข้างดีคือ 150MB / วินาทีถึงแม้ว่า SSD จะมีความเร็วสูงกว่า แต่ก็ไม่ได้เป็นสาเหตุที่เร็วกว่า แต่ก็มีเวลาแฝงที่ต่ำกว่าในการส่งคืนข้อมูล
  • เรียกใช้การอัปเดตระบบปฏิบัติการ มันเกิดขึ้นทั่วทั้งดิสก์การเพิ่มและการแพตช์ไฟล์ ถ้าคุณมี IOPS ต่ำมันจะช้าไม่ว่าจะผ่านหรือไม่ก็ตาม
  • การรันฐานข้อมูลตัวอย่างเช่นการเลือกข้อมูลจำนวนเล็กน้อยจากฐานข้อมูลขนาดใหญ่ มันจะอ่านจากดัชนีอ่านจากจำนวนไฟล์จากนั้นส่งคืนผลลัพธ์ อีกครั้งมันจะไปทั่วดิสก์เพื่อรวบรวมข้อมูล
  • เล่นเกมบนพีซีของคุณ มีแนวโน้มที่จะโหลดพื้นผิวจำนวนมากจากทั่วทั้งดิสก์ ในกรณีนี้จำเป็นต้องใช้ IOPS และปริมาณงาน

เทป LTO

พิจารณาสักครู่ระบบเทปสำรองข้อมูล LTO6 สามารถทำ 400MB / วินาทีได้ แต่ (ฉันคาดเดาที่นี่) อาจจะไม่สามารถทำ IOP แบบสุ่มได้หนึ่งอันมันอาจจะต่ำถึงวินาทีต่อ IOP ในทางกลับกันก็อาจทำตามลำดับ IOPS ได้เป็นจำนวนมากหากมีการกำหนด IOPS เป็นการอ่านหรือเขียนข้อมูลลงในเทป

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

หากต้องการทำความเข้าใจกับอุปกรณ์เก็บข้อมูลคุณอาจต้องการทราบว่ามันเป็นแบบสุ่มหรือต่อเนื่อง IOPS และขนาด IO จากนั้นคุณสามารถรับปริมาณงานได้

AWS

โปรดทราบว่า AWS ทำการเผยแพร่ทั้ง IOPS และตัวเลขปริมาณงานสำหรับพื้นที่เก็บข้อมูลทุกประเภทในหน้านี้ วัตถุประสงค์ทั่วไป SSD (gp2) สามารถทำได้ 10,000 16KiB IOPS ซึ่งให้สูงสุด 160MB / วินาที IOPS ที่จัดสรร (io1) คือ 20,000 16KiB IOPS ซึ่งให้สูงสุด 320MB / วินาที

โปรดทราบว่าด้วยปริมาณ gp2 คุณจะได้รับ 30IOPS ต่อ GB ที่จัดสรรดังนั้นเพื่อรับ 10,000 IOPS คุณต้องมีปริมาณ 333.33GB ฉันจำไม่ได้ว่าโวลุ่มของ io1 มีข้อ จำกัด ที่คล้ายกัน (เป็นเวลานานแล้วที่ฉันทำการสอบแบบภาคีที่มีการทดสอบประเภทนั้น) แต่ฉันสงสัยว่าพวกเขาทำและถ้าเป็นเช่นนั้นอาจจะ 60IOPS ต่อ GB

ข้อสรุป

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


ฉันได้รับที่ IOPS วัดประสิทธิภาพการเข้าถึงแบบสุ่ม แต่ไม่ได้แสดงว่าคุณกำลังทำสิ่งต่าง ๆ อย่างรวดเร็ว ... คุณอาจกำลังทำ 10,000 IOPS แต่สิ่งนี้อาจช้าหรือเร็ววิธีเดียวที่รู้ได้คือการรู้จำนวน MB / s การดำเนินการที่ใช้ไป
mFeinstein

โดยทั่วไปแล้ว IOPS จะระบุขนาดของส่วนของข้อมูล AWS พูดว่า 16KiB ดังนั้น 10,000 IOPS ที่ 16KiB / s ให้คุณ 160MB / วินาที
ทิม

2
10,000 IOPS ที่ 16KB จะไม่แปลเป็น 20,000 IOPS ที่ 8KB แต่ (อาจ ~ 11000) นี่หมายความว่าเราต้องรู้ทั้ง IOPS และปริมาณงานเพื่อประเมินไดรฟ์ / ปริมาณงาน
boot4life

4
เพียงแค่พูดจาหยาบคายมันยังคงเป็น 1 IOPS ไม่ใช่ 1 IOP นี่ไม่ใช่พหูพจน์
Matthew Steeples

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

57

นี่เป็นเพราะปริมาณงานต่อเนื่องไม่ใช่กิจกรรม I / O ส่วนใหญ่ที่เกิดขึ้น

การดำเนินการอ่าน / เขียนแบบสุ่มเป็นตัวแทนของกิจกรรมของระบบปกติมากขึ้นและมักจะถูกผูกไว้โดย IOPS

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

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

ฉันอาจต้องการ 2,000 IOPS เพื่อให้สามารถเรียกใช้ฐานข้อมูลเมื่อมีการใช้งานสูงสุด แต่อาจเห็นปริมาณงาน 30MB / s ที่ระดับดิสก์เนื่องจากประเภทของกิจกรรม ดิสก์มีความสามารถในการ 1200MB / s แต่ IOPS เป็นข้อ จำกัด ในสภาพแวดล้อม

นี่เป็นวิธีการอธิบายศักยภาพของความจุของระบบจัดเก็บข้อมูล SSD อาจมีความสามารถในการทำ 80,000 IOPS และปริมาณงาน 600MB / s คุณสามารถรับปริมาณงานนั้นด้วยดิสก์ SAS ขนาด 10k ปกติ 6 ตัว แต่จะให้ผลผลิตประมาณ 2,000 IOPS เท่านั้น


คุณช่วยยกตัวอย่างที่ IOPS จะให้ข้อมูลเชิงลึกเกี่ยวกับประสิทธิภาพของระบบที่ MB / s จะไม่เป็นประโยชน์หรือไม่
mFeinstein

@mFeinstein ดูตัวอย่างหนังโป๊ด้านบน
ewwhite

33
+1 สำหรับสื่อลามกตัวอย่าง lol
mFeinstein

2
นอกจากนี้ระบบปฏิบัติการมีแนวโน้มที่จะทำการเข้าถึงแบบสุ่มเล็กน้อย ปริมาณงาน Seq จะไม่ช่วย นั่นเป็นเหตุผลที่เรียกใช้ระบบปฏิบัติการบน SSD อย่างน้อยในพีซี
sudo

3
ฉันมักจะเห็นดิสก์ที่ใช้ประโยชน์อย่างเต็มที่ที่ทำ ~ 2MB / วินาที นั่นเป็นเพราะมันเป็นแบบสุ่ม 100% IO บางครั้งกำไรที่ได้มาอย่างไม่น่าเชื่ออาจเกิดจากการจัดเรียงข้อมูลตามลำดับบนดิสก์ (เช่นลบการแยกส่วน, จัดทำดัชนีในฐานข้อมูล)
boot4life

6

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

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

เมื่อเพื่อนร่วมงานและฉันติดตั้ง SSD เป็นครั้งแรกในระบบการพัฒนาของเราเพื่อแทนที่ HDD ที่เราเคยใช้มาก่อนหน้านี้เราได้ทำการวัดประสิทธิภาพในตัวพวกเขาซึ่งเน้นว่าทำไมเรื่องนี้ถึง:

ผลลัพธ์ SATA HDD:

ปริมาณการอ่านตามลำดับ: ~ 100 MB / s
ปริมาณการอ่านแบบไม่ต่อเนื่อง (บล็อก 2k, IIRC): ~ 1 MB / s

ผลการค้นหา SSD ที่แนบกับ PCIe:

ปริมาณการอ่านตามลำดับ: ~ 700 MB / s
ปริมาณการอ่านแบบไม่ต่อเนื่อง (บล็อก 2k, IIRC): ~ 125 MB / s

อย่างที่คุณสามารถเห็นได้จากตัวอย่างเพียงแค่การระบุจำนวนผลผลิตสูงสุดสำหรับอุปกรณ์แต่ละชิ้นจะให้ภาพที่ไม่ถูกต้องอย่างชัดเจนว่าเปรียบเทียบได้อย่างไร SSD นั้นมีความเร็วเพียง 6-7x เร็วเท่า HDD เมื่ออ่านไฟล์ขนาดใหญ่ตามลำดับ แต่จะเร็วกว่า 100 เท่าเมื่ออ่านข้อมูลขนาดเล็กจากส่วนต่าง ๆ ของดิสก์ แน่นอนว่าด้วย HDD ข้อ จำกัด นี้มีสาเหตุหลักมาจากความจริงที่ว่า HDD ต้องย้ายหัว r / w ไปยังแทร็กที่ต้องการแล้วรอให้ข้อมูลที่ต้องการหมุนใต้หัวในขณะที่ SSD ไม่มีส่วนที่เคลื่อนไหวได้

เวลาในการรวบรวมของเราดีขึ้นอย่างมากมากกว่าการเปรียบเทียบทรูพุตสูงสุดที่แนะนำ งานสร้างที่ก่อนหน้านี้ใช้เวลานานกว่า 30 นาทีเสร็จสิ้นในเวลาประมาณหนึ่งนาทีเนื่องจากดิสก์ I / O ในระหว่างการสร้างขนาดใหญ่ประกอบด้วยการอ่านและเขียนไฟล์ต้นฉบับแยกต่างหากจำนวนมากซึ่งไม่ได้มีขนาดใหญ่มากและอาจกระจายอยู่ทั่วดิสก์ .

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


คุณไม่ได้วัด IOPS ด้วยเช่นกัน?
mFeinstein

3

ในการดำเนินการ IO จะต้องผ่านชุดของการดำเนินการ สำหรับฮาร์ดไดรฟ์เชิงกลพวกเขาจำเป็นต้อง

  1. ค้นหาเส้นทางที่ถูกต้องและเลือกหัวขวา
  2. รอให้แผ่นเสียงหมุนไปยังตำแหน่งที่ถูกต้อง
  3. ถ่ายโอนข้อมูลจริง

เวลาที่ใช้สำหรับ 3 ขึ้นอยู่กับขนาดของบล็อกของข้อมูล แต่เวลาที่ใช้สำหรับ 1 และ 2 นั้นขึ้นอยู่กับขนาดของคำขอ

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

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

สำหรับเวิร์กโหลดจำนวนมากบล็อกมีขนาดเล็กพอที่จำนวนบล็อกที่จะถ่ายโอนมีความสำคัญมากกว่าขนาดของบล็อก


2

มีคอขวดสองประเภทที่คุณสามารถพบได้บนโวลุ่ม IO (หรือโดยทั่วไปแล้ว IO)

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

unitcost * ขนาด + ค่าใช้จ่าย สมการของเส้นตรง

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

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

ฉันคิดว่าอเมซอนจะรับรู้ถึงรูปแบบการชาร์จทั้งสองและเพิ่งพบหนึ่งที่ดีกว่าแสดงถึงความสามารถของโครงสร้างพื้นฐานของพวกเขา

มีข้อ จำกัด เกี่ยวกับขนาดของ IOP ที่เกี่ยวข้องกับกระสุนที่ร้านค้าสามารถถ่ายโอนใน "รอบ" ต่อไปดังนั้นคำขอขนาดใหญ่ยังคงจบลงด้วยการคิดต้นทุน IOPS หลายรายการ

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

ลักษณะ I / O และการตรวจสอบ

ไม่อ่านทั้งหมด แต่มันดูน่าสนใจถ้าคุณอยากรู้เกี่ยวกับพื้นที่นี้


2

ตอบคำถามของคุณ

"ฉันจะได้รับข้อมูลอะไรใหม่เมื่อฉันเห็นหมายเลข IOPS ว่าฉันจะไม่เห็นหมายเลขผลผลิต (MB / s)"

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

ขนาดไฟล์ IOPS * = ปริมาณงาน

การทดสอบหน่วยเก็บอาจสร้างจำนวน IOPS ที่แตกต่างกันขึ้นอยู่กับขนาดไฟล์และความลึกของคิว ที่ความลึกของคิว = 1 หรือ 2 ตัวควบคุมจะไม่ใช้ประโยชน์จากการแคชขณะที่ความลึกของคิว 32, 256, 512 จำนวนเพิ่มขึ้นหลายครั้งและไม่เปลี่ยนแปลงมากนัก ที่ขนาดไฟล์นับ 128KB IOPS อาจต่ำกว่าถัดจากไฟล์ 4KB แต่ปริมาณงาน - สูงกว่า

วิธีที่ดีที่สุดในการประเมินประสิทธิภาพของหน่วยเก็บคือหาการทดสอบ IOPS และปริมาณงานที่ขนาดบล็อกและความลึกคิวที่แตกต่างกัน


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

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

@mFeinstein ฉันได้แก้ไขคำตอบแล้วดูสิ
ยูจีน

1

โดยทั่วไปแล้ว IOPS นั้นยากกว่าการรับส่งข้อมูล หากคุณมี IOPS มากมายคุณจะมีปริมาณงานมากพอที่ส่วนใหญ่

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

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

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

เพียงแค่อัปเดต 10 แถวพร้อมกันบนฐานข้อมูลเชิงสัมพันธ์อาจสิ้นสุดในการสร้างหลายร้อย IOs: การอ่านดัชนีอ่านข้อมูลต่อท้าย logfile อัปเดตดัชนีและข้อมูล ระบบปฏิบัติการและฐานข้อมูลส่วนใหญ่พยายามอย่างหนักที่จะ จำกัด จำนวน IOs โดยการแคชและการหน่วงเวลา / การจัดกลุ่ม IOs เมื่อเป็นไปได้


1

ฉันจะตอบคำถามของฉันเองเช่นกันเพราะฉันคิดว่าคำตอบส่วนใหญ่มีหัวข้อเยอะและคำตอบนั้นง่ายกว่ามาก:

หากคุณดูที่อุปกรณ์เก็บข้อมูลของคุณเท่านั้นคุณอาจพลาดสิ่งที่เกิดขึ้น ... หากมีปริมาณงานต่ำ (MB / s ต่ำ) คุณอาจมีอุปกรณ์ที่ช้าหรือมีการเข้าถึงแบบสุ่มจำนวนมากใน HDD หรืออุปกรณ์อื่น ๆ ที่ไม่จัดการการเข้าถึงแบบสุ่มอย่างดี

ด้วยการมองเข้าไปใน IOPS และรู้ขนาดก้อนของการดำเนินการ I / O แต่ละครั้งคุณสามารถรู้ได้ว่าอุปกรณ์การจัดเก็บที่เข้าถึงนั้นสามารถจัดการได้จำนวนเท่าไรและปริมาณของ IOPS เหล่านี้คือเท่าใด (ขนาดก้อน * IOPS)

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

ดังนั้นเมื่อมองไปที่ IOPS เราสามารถเข้าใจถึงความหมายของปริมาณงานที่แท้จริงได้


IOPS = อินพุต / เอาท์พุตต่อวินาทีมันไม่ได้เกี่ยวกับพหูพจน์และไม่ควรละเว้น S ต่อท้าย :)
ยูจีน

1
มันไม่เกี่ยวกับพหูพจน์ฉันเคยเห็นบางคนอ้างถึง IOP สั้น ๆ สำหรับ "I / O OPeration" ดูเหมือนว่า ... แต่ใช่นี่อาจนำไปสู่ความสับสนดังนั้นฉันจะแทนที่มันขอบคุณ
mFeinstein
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.