เหตุใดส่วนใหญ่ของดิสก์ IO จึงเป็นของ jbd2 และไม่ใช่กระบวนการที่ใช้ IO จริง ๆ


16

เมื่อตรวจสอบดิสก์ IO ส่วนใหญ่ของ IO นั้นมาจาก jbd2 ในขณะที่กระบวนการดั้งเดิมที่ทำให้ IO สูงนั้นมีสัดส่วน IO ที่ต่ำกว่ามาก ทำไม?

ต่อไปนี้iotopเป็นตัวอย่างเอาต์พุต (กระบวนการอื่นที่ละเว้น IO <1%):

ป้อนคำอธิบายรูปภาพที่นี่


นี่คือด้วยdata=journal?
DepressedDaniel

@ DepressedDaniel ไม่แน่ใจว่าคุณหมายถึงอะไร ฉันเพิ่งใช้ iotop -oP
Sparkler

คำตอบ:


16

jbd2 เป็นเธรดเคอร์เนลที่อัพเดตเจอร์นัลระบบไฟล์

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

ในกรณีของคุณปรากฏว่าการรับส่งข้อมูลส่วนใหญ่ประกอบด้วยการปรับปรุงสมุดรายวัน สิ่งนี้ถูกติดตามไปที่ journal updater แต่ไม่มีการติดตามระหว่างการอัพเดตเจอร์นัลและกระบวนการที่ทำให้เกิดการดำเนินการเขียนที่ต้องการการอัพเดตเจอร์นัลนี้


2
ดิสก์ io ประเภทอื่น ๆ ที่มีนอกเหนือจากการปรับปรุงวารสาร? (เช่นทำไม jdb2 ไม่ได้เป็นเพียงรายการเดียวในการส่งออกของ iotop?)
Sparkler

@ Sparkler มีการเขียนข้อมูลจริงเช่นกัน (ยกเว้นกรณีที่คุณกำลังใช้ระบบแฟ้มบันทึกโครงสร้าง แต่ส่วนใหญ่จะไม่.)
กิลส์ 'ทีเราชั่วร้ายหยุดเป็น'

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