it-swarm-vi.tech

Linux - Làm cách nào tôi có thể thấy những gì đang chờ đĩa IO

Tôi có một máy chủ có tải thực sự cao. Không có gì là nhảy ra khỏi tôi về việc sử dụng CPU, và nó không hoán đổi.

Tôi nghĩ đó là nguyên nhân của một số quy trình đang chờ đĩa IO và tôi muốn xem những gì đang chờ.

Có chương trình nào sẽ chỉ cho tôi những quy trình đang chờ IO không? Tôi biết về iotop nhưng điều đó cho thấy những gì hiện đang làm IO.

Hay đây là một câu hỏi ngớ ngẩn? (Nếu vậy giải thích như thế nào :))

42
Rory

Bạn có thể sử dụng màn hình I/O như iotop, nhưng nó sẽ chỉ hiển thị cho bạn các quy trình hoặc luồng với các hoạt động I/O hiện tại.

Nếu bạn cần duyệt các quy trình đang chờ I/O, hãy sử dụng đồng hồ để theo dõi các quy trình với cờ STAT 'D' như bên dưới:

watch -n 1 "(ps aux | awk '\$8 ~ /D/  { print \$0 }')"
47
Ali Mezgani

ps axu và tìm kiếm các quy trình ở trạng thái "D". Dựa trên trang chủ ps (1) , các quá trình ở trạng thái D đang trong trạng thái ngủ liên tục, điều này hầu như luôn có nghĩa là 'chờ đợi IO'. Thật không may, giết các quá trình này thường là không thể.

18
Zanchey

Câu trả lời của Zanchey là điều tốt nhất tôi biết để tìm hiểu điều gì đang chờ đợi IO.

Khi bạn nói rằng máy chủ của bạn đang tải cao, điều đó có nghĩa là gì? Một cái gì đó đặc biệt là phản ứng chậm?

Nếu bạn đang tự hỏi liệu Đĩa IO của bạn có bị nghẽn cổ chai không, tôi sẽ sử dụng lệnh i điều chỉnh (một phần của gói sysstat) để xem đĩa có thực sự tải nặng không.

Thí dụ:

[[email protected]: ~] iostat -x 1 3                                                                                           

avg-cpu:  %user   %Nice %system %iowait  %steal   %idle
           2.38   34.71    2.64    1.18    0.00   59.21 
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.11    17.35    2.21   20.31    46.57   301.40    15.45     2.27  100.66   1.48   3.34
sda1              0.10    17.31    2.21   20.31    46.48   301.10    15.44     2.27  100.66   1.48   3.34
sda2              0.00     0.00    0.00    0.00     0.00     0.00     3.50     0.00   30.00  30.00   0.00
sr0               0.00     0.00    0.00    0.00     0.00     0.00    18.44     0.00  677.67 512.61   0.00

avg-cpu:  %user   %Nice %system %iowait  %steal   %idle
           6.22    0.00    4.31    0.00    0.00   89.47   
Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sda2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
sr0               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00   0.00   0.00
16
Kyle Brandt

Cho phép block_dump ghi nhật ký quá trình đang thực hiện các thao tác đọc/ghi khối:

echo 1 > /proc/sys/vm/block_dump
tail -f /var/log/syslog

khi hoàn tất, hãy tắt theo dõi để bạn không spam các tệp nhật ký của mình:

echo 0 > /proc/sys/vm/block_dump
0
Aleksandr Levchuk