(ผู้ชาย Windows ถาม) การวัด Disk Latency บน Linux: ฉันรำคาญไหม


11

บน Windows ทุกครั้งที่ฉันต้องการตรวจสอบ / ยืนยันว่าอาจมีปัญหาที่เกี่ยวข้องกับ IO ในโวลุ่มที่ฐานข้อมูลหรือแอพพลิเคชั่นความหน่วงต่ำอื่น ๆ ใช้งานได้ฉันตรวจสอบเวลาแฝงของดิสก์

ถ้าฉันเห็น Windows วินาที Disk Average / ตัวนับการถ่ายโอน > 18-20ms อย่างสม่ำเสมอแล้วนกขมิ้นของฉันในเหมืองถ่านหินเพิ่งจะตายและฉันต้องตรวจสอบเพิ่มเติม วางตายง่าย

ตอนนี้ฉันกำลังดู Linux และไม่เห็นเมตริกที่แฝงอยู่ในระดับเดียวกัน การวิจัยอย่างรวดเร็วที่ฉันได้ทำบ่งชี้ว่าฉันอาจไม่ต้องการแม้แต่ ... ฉันเห็นการอ้างอิงจำนวนมากถึง I / O รอเป็นวิธีที่คนส่วนใหญ่ติดตามสิ่งนี้

มีกฎของหัวแม่มือ ballpark ที่คุณใช้เกี่ยวกับเรื่องนี้หรือไม่? ตัวอย่างเช่นใด ๆ ฉัน / ฉันรอฉันดูไม่ดีสำหรับปริมาณของฐานข้อมูลหรือไม่ มีคำสั่ง iostat ง่าย ๆ ที่ช่วยให้ฉันดูสุขภาพดิสก์โดยรวมดีกว่าแค่การดูตาหรือเปล่า?

ขอบคุณมาก!


4
คุณสามารถค้นหาioping
ewwhite

ขอบคุณ @white ฉันเดาว่าฉันแค่สงสัยว่าถ้าฉันต้องเปลี่ยนโฟกัสของฉันทั้งหมดและตรวจสอบสิ่งนี้ในวิธีที่แตกต่างกันคุณรู้หรือไม่
Russell Christopher

2
เปิดใช้งานการรวบรวม sysstat ในระบบของคุณ จากนั้นคุณสามารถตรวจสอบเปอร์เซ็นต์ iowait ของ CPU ซึ่งมีประโยชน์มากสำหรับการวินิจฉัยความเชี่ยวที่เกี่ยวข้องกับ IO
EEAA

2
@RussellChristopher คุณสามารถดูตัวอย่างsarการส่งออกที่นี่ เอาใจใส่กับ%iowaitคอลัมน์
EEAA

@ แมทในขณะที่มันคล้ายกันมากโฟกัสจะแตกต่างกันเล็กน้อย QA นั้นให้ความสำคัญกับการทดสอบในสภาพแวดล้อมจำลองมากขึ้นซึ่งเป็นที่ที่ Q นี้ดูเหมือนจะเพิ่มเติมเกี่ยวกับการตรวจสอบประสิทธิภาพปัจจุบันในสภาพแวดล้อมการผลิต
BeowulfNode42

คำตอบ:


12

ส่วนตัวฉันใช้คำสั่งiostat -xk 10และดูที่awaitคอลัมน์

  • -x แสดงสถิติเพิ่มเติม
  • -k แสดงสถิติเป็นกิโลไบต์ต่อวินาที หรือใช้ m สำหรับเมกะไบต์ / s
  • 10 ช่วงการแสดงผลเป็นวินาที

นี่เป็นตัวชี้วัดที่เหมือนกันอย่างแท้จริงกับ windows Average Disk วินาที / การถ่ายโอนและแสดงรายการเป็นมิลลิวินาที ดังนั้นกฎของหัวแม่มือที่คล้ายกันอาจถูกนำไปใช้แม้ว่าสิ่งนี้จะขึ้นอยู่กับทุกสิ่ง ฉันมักจะพบว่าผู้ใช้เริ่มบ่นที่ 15ms และ 20ms ไม่ดีมาก

กด ctrl + c เพื่อออกหรือระบุจำนวนการวนซ้ำเพื่อดูด้วยพารามิเตอร์การนับ โปรดทราบว่าผลลัพธ์การทำซ้ำครั้งแรกจะเบ้อย่างหนักเนื่องจากตัวอย่างเวลาขนาดเล็กที่ใช้ในการทำซ้ำครั้งแรก

จากman iostatหน้า

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

แก้ไข: awaitเป็นตัวชี้วัดหลักที่ฉันใช้ในการดูดิสก์ที่อยู่ในระหว่างการผลิตเพื่อดูว่าปริมาณงานและ iops สามารถตอบสนองความต้องการได้หรือไม่

% iowait stat นั้นเกี่ยวกับความสมดุลระหว่างการใช้ cpu และดิสก์ % iostat จะยังคงต่ำกว่าที่คาดไว้หากทั้ง cpu และกิจกรรมของดิสก์สูง ในอีกด้านหนึ่งเริ่มต้นที่ระดับการใช้ดิสก์ค่อนข้างต่ำ% iostat อาจค่อนข้างสูงหาก cpu ไม่ได้ทำงาน การพูดแบบนี้ต้องรอด้วยเม็ดเกลือเช่นกัน หากมีการอ่าน / เขียนตามลำดับจำนวนมากมันจะบิดเบือนตัวเลขให้มีค่าต่ำลงและกฎนิ้วหัวแม่มือ 18 ~ 20ms ของคุณจะไม่เป็นประโยชน์ภายใต้เงื่อนไขเหล่านี้เพราะชิ้นส่วนส่วนใหญ่ที่เขียนจะเป็นข้อมูลตามลำดับและจะได้รับบริการ โดยดิสก์อย่างรวดเร็วในขณะที่ io แบบสุ่มอื่น ๆ จะรอเนื่องจากระบบ Native-Command-Queuing (NCQ) ที่ติดตั้งอยู่ในดิสก์เพื่อเพิ่มประสิทธิภาพของปริมาณงานโดยให้ดิสก์เลือกลำดับที่บริการถูกร้องขอ


ขอบคุณ @ beowulfNode42 นี่เป็นเมตริกหลักที่คุณใช้ในแง่ของการมอง "ดิสก์ที่ไม่ดี" หรือไม่? ใหม่ที่ระลึกดูเหมือนว่าจะให้ความสำคัญกับการรอคอย i / o และการใช้งานดิสก์ (อ่านและเขียน) เปอร์เซ็นต์ ... ทำให้ฉันสงสัยว่าฉันกำลังไล่ตัวชี้วัดผิดหรือถ้าพวกเขารายงานข้อมูลที่มีประโยชน์น้อยกว่า ....
Russell Christopher

@RussellChristopher สถิติอื่น ๆ ให้บริบทที่จำเป็นในการตีความข้อมูลที่รอคอย เช่นมี iops จำนวนมาก (r / และ w / s) มากมาย MB / s คือขนาดคำร้องขอ avg (avgrq-sz) ขนาดใหญ่หรือเล็กและขนาดคิว avg คืออะไร (avgqu-sz) ใช่พร้อมกับตัวชี้วัดที่เกี่ยวข้องกับซีพียู% iowait, ผู้ใช้%, ระบบ% และอื่น ๆ เพื่อดูว่าดิสก์ทำงานช้าลงในซีพียูหรือในทางกลับกัน
BeowulfNode42
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.