Tại sao hầu hết các IO của đĩa được quy cho jbd2 mà không phải là quá trình thực sự sử dụng IO?


16

Khi giám sát IO đĩa, hầu hết các IO được quy cho jbd2, trong khi quá trình ban đầu gây ra IO cao được quy cho tỷ lệ IO thấp hơn nhiều. Tại sao?

iotopĐầu ra ví dụ của đây (các quy trình khác có IO <1% bị bỏ qua):

nhập mô tả hình ảnh ở đây


Đây có phải với data=journal?
DepressionDaniel

@DepressionDaniel không chắc ý của bạn là gì. Tôi vừa mới sử dụng iotop -oP
Sparkler

Câu trả lời:


16

jbd2 là một luồng nhân cập nhật tạp chí hệ thống tập tin.

Truy tìm hệ thống tập tin hoặc hoạt động đĩa với quá trình gây ra rất khó khăn vì các hoạt động của nhiều quy trình được kết hợp với nhau. Ví dụ: nếu hai quá trình đang đọc từ cùng một tệp cùng một lúc, thì quá trình đó sẽ được đọc đối với quy trình nào? Nếu hai tiến trình ghi vào cùng một thư mục và thư mục chỉ được cập nhật trên đĩa một lần (kết hợp hai thao tác), quá trình ghi sẽ được tính vào?

Trong trường hợp của bạn, có vẻ như hầu hết lưu lượng truy cập bao gồm các bản cập nhật cho tạp chí. Điều này được truy tìm đến trình cập nhật tạp chí, nhưng không có dấu vết nào giữa các cập nhật tạp chí và quá trình gây ra (các) hoạt động ghi yêu cầu cập nhật tạp chí này.


2
Những loại đĩa io nào khác ngoài các bản cập nhật tạp chí? (tức là tại sao jdb2 không phải là mục duy nhất trong đầu ra của iotop?)
Sparkler

@Sparkler Có cả việc viết dữ liệu thực tế. (Trừ khi bạn đang sử dụng hệ thống tệp có cấu trúc nhật ký, nhưng hầu hết là không.)
Gilles 'SO- ngừng trở nên xấu xa'

Điều đó giải thích những gì xảy ra. Nhưng nó hút thời gian lớn khi quy trình ưu tiên 'I / O ban đầu đã được đặt thành' không hoạt động 'và jbd2chỉ tiếp tục thực hiện nhiều I / O ở mức ưu tiên I / O của riêng nó.
jlh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.