ฉันมีปัญหา I / O บางอย่างในระบบ Linux ที่ฉันดูแลอยู่ พวกเขาแสดงให้เห็นในกระบวนการที่มักจะบล็อกนานถึงหลายวินาทีใน syscalls ง่าย ๆ เช่น open (), ยกเลิกการเชื่อมโยง () หรือปิด () ในไฟล์ (ซึ่งเป็นปัญหาเนื่องจากโปรแกรมที่เกี่ยวข้องบางโปรแกรมต้องการเวลาแฝง I / O ค่อนข้างต่ำ อย่างถูกต้อง) มันเป็นความจริงที่ระบบที่มีปัญหาจะได้รับการโหลด I / O ปานกลาง แต่ฉันแทบจะไม่สามารถคิดได้ว่ามันจะเพียงพอที่จะพิสูจน์เวลาแฝงอันมหาศาลนี้ บางครั้งการโทรอาจใช้เวลามากกว่า 15 วินาทีในการดำเนินการให้เสร็จสมบูรณ์ (แม้ว่าบ่อยครั้งขึ้นพวกเขาอาจใช้เวลา 1 หรือ 2 หรือ 3 วินาทีหรือมากกว่านั้น)
คำถามของฉันคือ: ฉันจะรู้ได้อย่างไรว่าเกิดอะไรขึ้น สิ่งที่ฉันต้องการคือเครื่องมือบางอย่างที่สามารถบอกฉันได้ว่ากระบวนการที่เป็นปัญหาถูกบล็อกโดยอะไรในเคอร์เนลและสาเหตุที่กระบวนการที่พวกเขาหลับนั้นไม่ว่างสิ่งที่เกิดขึ้นกับมันและสิ่งต่าง ๆ มีเครื่องมือเช่นนี้หรือมีวิธีอื่นในการพยายามแก้ไขข้อผิดพลาดที่เกิดขึ้น
อีกทางเลือกหนึ่งของแน่นอนถ้าคุณมีเงื่อนงำใด ๆ ที่เป็นสิ่งที่จริงเป็นสิ่งที่เกิดขึ้นว่าสามารถที่จะหลีกเลี่ยง?
สำหรับบันทึกระบบไฟล์ที่ฉันใช้คือ XFS