# วัดประสิทธิภาพ NVMe โดยไม่หลอกตัวเอง | SwissOctet Insights https://swissoctet.com/th/insights/nvme-benchmark-methodology/ SwissOctet / ข้อมูลเชิงลึก / ที่จัดเก็บและกู้คืน ที่จัดเก็บและกู้คืน ขั้นสูง · อ่าน 6 นาที วัดประสิทธิภาพ NVMe โดยไม่หลอกตัวเอง กำหนดรูปแบบ I/O ควบคุมผลของแคช และตรวจสอบการกระจายความหน่วงก่อนสรุปผลเกี่ยวกับแอปพลิเคชันจากการทดสอบดิสก์ โดย SwissOctet Editorial บันทึกคู่มือ คัดลอกลิงก์ ในหน้านี้ 01 เริ่มต้นด้วยคำถามเรื่องการจัดเก็บ ไม่ใช่คะแนน 02 อธิบายภาระงานในแง่ที่ทำซ้ำได้ 03 ควบคุมแคชโดยไม่แสร้งว่าไม่สำคัญ 04 อ่านค่าความหน่วงส่วนปลายควบคู่กับปริมาณงาน 05 ให้การทดสอบได้รับอนุญาตและไม่ทำลายข้อมูล 06 ปิดวงจรด้วยหลักฐานจากแอปพลิเคชัน รายการตรวจสอบปฏิบัติของคุณ แหล่งอ้างอิงและอ่านเพิ่มเติม กลับไปยังคลัง คำตอบตรงประเด็น การทดสอบการจัดเก็บที่มีประโยชน์จะจับคู่ขนาดการดำเนินการ รูปแบบการเข้าถึง ภาวะพร้อมกัน และข้อกำหนดด้านความทนทาน เข้ากับแอปพลิเคชัน บันทึกเงื่อนไขการทดสอบและการกระจายความหน่วง แล้วยืนยันผลลัพธ์ด้วยการวัดจากแอปพลิเคชัน 01 เริ่มต้นด้วยคำถามเรื่องการจัดเก็บ ไม่ใช่คะแนน ตัดสินใจว่าคุณต้องรู้อะไรก่อนรันการทดสอบ benchmark คุณอาจกำลังตรวจสอบการคอมมิตฐานข้อมูลที่ช้า ปริมาณงานการกระจายไฟล์ หรือกระบวนการบิลด์ที่สร้างไฟล์ขนาดเล็กจำนวนมาก ภาระงานเหล่านี้ไม่ได้ขอให้ดิสก์ทำสิ่งเดียวกัน การคัดลอกแบบลำดับขนาดใหญ่อาจดูน่าประทับใจ แต่บอกได้น้อยมากเกี่ยวกับความล่าช้าที่บริการซึ่งอ่านแบบสุ่มขนาดเล็กประสบอยู่ NVMe ถูกออกแบบสำหรับสื่อที่ไม่ลบเลือนและ I/O แบบขนานที่มีประสิทธิภาพ แต่ชื่อโปรโตคอลไม่ได้อธิบายทุกส่วนของเส้นทางการจัดเก็บแบบโฮสต์ การเสมือน ระบบไฟล์ การแย่งชิงทรัพยากร และแอปพลิเคชันยังคงมีความสำคัญ เขียนสมมติฐานการทดสอบ เช่น ความหน่วงของการจัดเก็บกำลังทำให้การดำเนินการหนึ่งช้าลงหรือไม่ แทนที่จะพยายามสร้างตัวเลขที่พิสูจน์ว่าเซิร์ฟเวอร์ทั้งหมดเร็ว 02 อธิบายภาระงานในแง่ที่ทำซ้ำได้ บันทึกขนาดการดำเนินการ รูปแบบลำดับหรือสุ่ม สัดส่วนการอ่านต่อการเขียน จำนวนงาน และความลึกของคิว รวมขนาดชุดข้อมูลและระยะเวลาทดสอบ เอกสาร fio อธิบายการควบคุมภาระงานเหล่านี้และเอนจิน I/O ที่มีอยู่ ความลึกที่ตั้งใจไว้อาจไม่บรรลุด้วยทุกเอนจินหรือทุกการตั้งค่า ดังนั้นอ่านพฤติกรรมที่รายงานควบคู่กับการกำหนดค่าที่คุณร้องขอ เก็บสำเนาคำอธิบายการทดสอบไว้ข้างผลลัพธ์ บันทึกระบบปฏิบัติการ ระบบไฟล์ ตัวเลือกการเมานต์ กิจกรรมของบริการ และความจุที่มีอยู่ หากเปรียบเทียบการกำหนดค่า ให้เปลี่ยนเงื่อนไขที่เกี่ยวข้องทีละอย่าง การทดสอบที่มีรูปแบบการเข้าถึงหรือภาวะพร้อมกันต่างกันไม่สามารถนำเสนออย่างเป็นธรรมราวกับว่าเปลี่ยนเฉพาะสื่อจัดเก็บ รูปแบบแอปพลิเคชัน มิติการทดสอบที่ต้องอธิบาย ผลลัพธ์ที่ต้องตรวจสอบ การส่งไฟล์ขนาดใหญ่ การอ่านแบบลำดับและไคลเอนต์พร้อมกัน ปริมาณงานต่อเนื่องและการใช้ CPU การค้นหาบันทึก การอ่านแบบสุ่มขนาดเล็กและภาวะพร้อมกันที่เป็นตัวแทน การกระจายความหน่วงและการดำเนินการที่เสร็จสมบูรณ์ ธุรกรรมที่ทนทาน ข้อกำหนดการเขียนและการซิงโครไนซ์ ความล่าช้าที่เกี่ยวข้องกับการคอมมิต ไม่ใช่ความเร็วการเขียนแบบบัฟเฟอร์เพียงอย่างเดียว การบิลด์หรือการแตกไฟล์ การดำเนินการไฟล์ขนาดเล็กแบบผสม ระยะเวลางานแบบครบวงจรและการรอ I/O 03 ควบคุมแคชโดยไม่แสร้งว่าไม่สำคัญ ชุดข้อมูลที่พอดีกับหน่วยความจำอาจวัดพฤติกรรมแคชเป็นส่วนใหญ่หลังรอบแรก ซึ่งมีประโยชน์ได้หากแอปพลิเคชันได้รับประโยชน์จากแคชเดียวกันตามปกติ แต่ไม่ควรติดป้ายว่าเป็นประสิทธิภาพของอุปกรณ์ดิบ เลือกอย่างตั้งใจว่าการทดสอบตรวจสอบเส้นทางแอปพลิเคชันที่อุ่น ชุดข้อมูลที่เย็นกว่า หรือโหมด I/O ที่ตั้งใจลดผลของบัฟเฟอร์ระบบปฏิบัติการ การรองรับ Direct-I/O และการจัดแนวขึ้นอยู่กับแพลตฟอร์มและเอนจิน อีกทั้งไม่ได้แสดงข้อกำหนดด้านความทนทานของแอปพลิเคชันโดยอัตโนมัติ หรือกำจัดแคชทั้งหมดในสแตก ระบุโหมดที่เลือกอย่างชัดเจน และหลีกเลี่ยงการเปรียบเทียบการทดสอบแบบบัฟเฟอร์กับการทดสอบแบบไม่บัฟเฟอร์ราวกับเป็นงานเดียวกัน แยกช่วงวอร์มアップและช่วงที่วัดออกจากกันเมื่อช่วยในการตีความ 04 อ่านค่าความหน่วงส่วนปลายควบคู่กับปริมาณงาน ความหน่วงเฉลี่ยอาจซ่อนการดำเนินการที่ช้าซึ่งส่งผลต่อคำขอจริง ตรวจสอบเปอร์เซ็นไทล์ที่รายงานและจำนวนตัวอย่างที่รองรับ เปอร์เซ็นไทล์สูงอธิบายขอบเขตที่ต่ำกว่าซึ่งสัดส่วนที่ระบุของการดำเนินการที่สังเกตพบตกลงในช่วงการทดสอบนั้น ไม่ใช่การรับประกันบริการถาวร การรันสั้นหรือไม่เป็นตัวแทนให้หลักฐานจำกัดเกี่ยวกับช่วงการผลิตที่ยุ่ง ความลึกของคิวที่สูงขึ้นอาจปรับปรุงปริมาณงานที่เสร็จสมบูรณ์ในขณะที่เพิ่มเวลารอ การแลกเปลี่ยนนี้อาจเหมาะกับการประมวลผลแบบกลุ่มและเป็นผลเสียต่อบริการแบบโต้ตอบ เปรียบเทียบผลลัพธ์ที่ภาวะพร้อมกันคล้ายกับแอปพลิเคชัน และตรวจสอบ CPU และแรงกดดัน I/O ไปพร้อมกัน หยุดก่อนที่การทดสอบจะสร้างความรบกวนที่ไม่จำเป็นต่อภาระงานอื่นที่ใช้สภาพแวดล้อมร่วมกัน 05 ให้การทดสอบได้รับอนุญาตและไม่ทำลายข้อมูล ใช้ไดเรกทอรีทดสอบเฉพาะหรือวอลุ่มแบบใช้แล้วทิ้งที่เตรียมไว้ โดยมีพื้นที่ว่างเพียงพอและแผนการล้างข้อมูลที่ชัดเจน อย่าชี้ benchmark การเขียนไปยังอุปกรณ์ดิบหรือชุดข้อมูลการผลิตที่ยังไม่ได้ตรวจสอบ ตรวจสอบเป้าหมายและพฤติกรรมการเขียนของเครื่องมือก่อนเริ่ม และเริ่มด้วยการรันแบบจำกัด I/O สังเคราะห์สามารถใช้ความจุและรบกวนบริการได้ แม้จะไม่ได้เขียนทับไฟล์ที่มีประโยชน์ สำหรับการประเมินที่คล้ายการผลิต ให้ตกลงช่วงเวลาบำรุงรักษาและเก็บการตรวจสอบแอปพลิเคชันไว้ ใช้ข้อมูลที่สร้างขึ้นเมื่อเป็นไปได้ อย่าสรุปความน่าเชื่อถือของการจัดเก็บจาก speed test การตรวจสอบความสมบูรณ์ การสำรองข้อมูล และการกู้คืนเป็นงานแยกกัน อุปกรณ์ที่ทำ benchmark เสร็จยังต้องมีกลยุทธ์การกู้คืนสำหรับการลบ ความผิดพลาดของซอฟต์แวร์ หรือการสูญเสียเครื่อง 06 ปิดวงจรด้วยหลักฐานจากแอปพลิเคชัน สมมติว่าบริการรายงานใช้เวลาส่วนใหญ่รอการอ่านแบบสุ่ม ทีมทดสอบรูปแบบการอ่านที่เป็นตัวแทน แล้วรันรายงานจริงซ้ำกับข้อมูลที่เทียบเคียงได้ หากรายงานดีขึ้นในขณะที่งานอื่นคงที่ ผลลัพธ์สนับสนุนสมมติฐานเรื่องการจัดเก็บ หากไม่ดีขึ้น ให้ตรวจสอบการออกแบบคิวรี หน่วยความจำ หรือ dependency อื่น แทนการรันการทดสอบสังเคราะห์ที่กว้างขึ้นซ้ำ Pulse NVMe และการกำหนดค่าเฉพาะที่เลือกไว้ระบุการจัดเก็บ NVMe ในแค็ตตาล็อก SwissOctet ป้ายกำกับของ它们是ข้อกำหนดทางเทคนิค ไม่ใช่ benchmark แอปพลิเคชันที่เผยแพร่ ใช้วิธีการควบคุมเพื่อประเมินสภาพแวดล้อมที่ส่งมอบและเก็บเงื่อนไขไว้พร้อมกับสิ่งที่ค้นพบ การตัดสินใจจะแข็งแกร่งขึ้นเมื่อการวัดการจัดเก็บและผลลัพธ์ที่ผู้ใช้มองเห็นตอบคำถามเดียวกัน เปลี่ยนเป็น行動 รายการตรวจสอบปฏิบัติของคุณ ✓ กำหนดคำถามของแอปพลิเคชันก่อน ✓ บันทึกรูปแบบ ขนาดบล็อก ภาวะพร้อมกัน และระยะเวลา ✓ ระบุสมมติฐานเรื่องแคชและโหมด I/O ✓ ตรวจสอบเปอร์เซ็นไทล์ความหน่วงควบคู่กับปริมาณงาน ✓ ใช้เป้าหมายแบบใช้แล้วทิ้งที่ตรวจสอบแล้วและโหลดเริ่มต้นแบบจำกัด ✓ ยืนยันสิ่งที่ค้นพบด้วยการทดสอบแอปพลิเคชัน ดาวน์โหลดรายการตรวจสอบ คำถามที่พบบ่อย รายละเอียดที่สำคัญ การคัดลอกแบบลำดับเพียงพอต่อการเปรียบเทียบการจัดเก็บฐานข้อมูลหรือไม่ + โดยปกติไม่เพียงพอ การเข้าถึงฐานข้อมูลอาจเกี่ยวข้องกับการอ่านแบบสุ่มขนาดเล็ก การเขียน และการซิงโครไนซ์ จำลองรูปแบบที่เกี่ยวข้องและตรวจสอบแอปพลิเคชันจริง Direct I/O พิสูจน์การเขียนที่ทนทานได้หรือไม่ + ไม่ใช่ การบัฟเฟอร์และความทนทานเป็นเรื่องแยกกัน จับคู่พฤติกรรมการซิงโครไนซ์ที่แอปพลิเคชันต้องการ ฉันสามารถเผยแพร่การทดสอบหนึ่งครั้งเป็นความเร็วแผนที่รับประกันได้หรือไม่ + ไม่ใช่ เผยแพร่เงื่อนไขและขอบเขตของมัน ผลลัพธ์ที่วัดจากการรันหนึ่งครั้งไม่ใช่การรับประกันระดับบริการหรือประสิทธิภาพในอนาคต แหล่งอ้างอิงหลัก ไปที่ต้นทาง แหล่งอ้างอิงเหล่านี้สนับสนุนแนวคิดทางเทคนิคในคู่มือนี้ ปฏิบัติตามเอกสารปัจจุบันก่อนเปลี่ยนระบบโปรดักชัน fio: เอกสารเครื่องมือทดสอบ I/O แบบยืดหยุ่น fio.readthedocs.io NVM Express: ภาพรวมข้อกำหนดและคำถามที่พบบ่อย nvmexpress.org เคอร์เนล Linux: Pressure Stall Information docs.kernel.org คำแนะนำด้านบรรณาธิการโดย SwissOctet ตัวอย่างมีไว้เพื่อประกอบ ข้อมูลจำเพาะของบริการ ตัวเลือกที่มี และเงื่อนไขตามสัญญาต้องได้รับการตรวจสอบแยกต่างหาก เชื่อมโยงความรู้ โครงสร้างพื้นฐานที่เกี่ยวข้อง Pulse NVMe สวิตเซอร์แลนด์ Metal Hyper สวิตเซอร์แลนด์ Metal EPYC สวิตเซอร์แลนด์ รักษาสายไว้ บันทึกภาคสนามถัดไปของคุณ สำรวจทุกคู่มือ บันทึกภาคสนาม / 01 + ที่จัดเก็บและกู้คืน พื้นฐาน เมื่อ NVMe สร้างความแตกต่างให้แอปพลิเคชันของคุณ แยกแยะความจุ ความหน่วง และปริมาณงาน เพื่อให้ป้ายพื้นที่จัดเก็บที่เร็วกว่าตอบปัญหาจริงของแอปพลิเคชัน อ่าน 4 นาที อ่านคู่มือ บันทึกภาคสนาม / 02 + ที่จัดเก็บและกู้คืน ประยุกต์ สแนปช็อตและการสำรองข้อมูล: เลือกความล้มเหลวที่คุณต้องรอด เปรียบเทียบจุดกู้คืน ขอบเขตความล้มเหลว และความสอดคล้องของแอปพลิเคชัน แทนที่จะสมมติว่าสแนปช็อตและการสำรองข้อมูลอิสระให้การป้องกันเหมือนกัน อ่าน 4 นาที อ่านคู่มือ บันทึกภาคสนาม / 03 + ที่จัดเก็บและกู้คืน พื้นฐาน ที่จัดเก็บแบบ object, file หรือ block: เลือกอินเทอร์เฟซที่แอปพลิเคชันของคุณต้องการ แยกความแตกต่างของอินเทอร์เฟซที่จัดเก็บ ความหมายของการเข้าถึง และความรับผิดชอบด้านการดำเนินงาน ก่อนเปลี่ยนข้อกำหนดด้านความจุให้เป็นสถาปัตยกรรมแอปพลิเคชัน อ่าน 4 นาที อ่านคู่มือ