Xác định quá trình nào gây ra I / O đĩa nặng?


19

Tôi đã thấy câu hỏi này: Làm thế nào để xác định ghi nặng vào đĩa?

Và tôi đã sử dụng dstattrên đỉnh trước đó ... nhưng dường như họ không xác định chính xác quá trình nào gây ra I / O đĩa. Ví dụ: từ dstat:

dstat -ta --top-bio
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ----most-expensive----
     time     |usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw |  block i/o process
14-12 16:16:25| 22   3  49  26   0   0|2324k    0 |  17k 6144B|   0     0 |1324     0 |
14-12 16:16:26| 24   3  30  43   0   0|4960k 8192B|1498B 4322B|   0     0 |1494     0 |wget          0  4096B
14-12 16:16:27| 25   4  38  33   0   0|4612k  548k|5011B   27k|   0     0 |1582     0 |kjournald     0    24k
14-12 16:16:28| 23   3  42  32   0   0|5072k    0 |  24k 4368B|   0     0 |1495     0 |

Lưu ý mức dsk / tổng cao là bao nhiêu - từ 2 đến 5 MB / giây. Nhưng sau đó nhìn vào cột 'đắt nhất' - nó chỉ có một vài byte ở đây, một vài KB ở đó và đôi khi thậm chí không có gì. Đó là loại tương tự với 'trên đỉnh'. Hiển thị mức sử dụng đĩa tổng thể cao, nhưng mức sử dụng thấp từ các quy trình riêng lẻ. Tôi đang chạy CentOS 5, kernel 2.6.18-53.

Tôi có cần một phiên bản kernel mới hơn không? Có lẽ một số thiết lập cấu hình hệ thống ở đâu đó? Trang chủ 'trên đỉnh' khuyên bạn nên cài đặt một số bản vá kernel, nhưng tôi không gặp rắc rối khi định cấu hình và biên dịch kernel của riêng mình.

Câu trả lời:


26

iotop ( liên kết ) cho bộ khởi động;) Tôi chưa thấy bạn đăng một đầu ra của nó.

1: Tôi đã trải qua gần như cùng một tình huống với một hệ thống tập tin đăng nhập và atime - tuy nhiên với nhiều ghi hơn.

Hãy thử kết nối với noatime và tắt ghi nhật ký hệ thống tập tin (sau này chỉ để kiểm tra) để xem liệu đó có phải là hệ thống tập tin hay không và như đã nói, iotop nếu nó dựa trên quy trình.

2: Tôi đoán phân vùng này không phải là một phần của mảng đột kích vừa được xây dựng lại, phải không?

3: Nếu bạn đang có rất nhiều tệp rất nhỏ (nhỏ hơn rất nhiều so với thiết bị khối thực tế chặn và / hoặc hệ thống tệp bị chặn) và bạn đang đọc các tệp nhỏ đó, cuối cùng bạn sẽ đọc toàn bộ các khối từ hệ thống trong số các khối đó sẽ được đọc không có gì.

4: Nếu không có gì giúp ở trên, bạn luôn có thể lấy danh sách các tệp được truy cập bằng cách thực thi

echo 1 > /proc/sys/vm/block_dump

xin lưu ý rằng nó làm giảm hiệu suất hệ thống rất nhiều. Hướng dẫn có sẵn trong bài viết trước của tôi ở đây


1
Đánh bại tôi trong khoảng 5 giây;) +1
pehrs

Tôi vừa gặp may, nhưng gần như ngay lập tức mở rộng câu trả lời, vì nó không chính xác là câu trả lời cho câu hỏi;)
asdmin
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.