Làm thế nào tôi có thể theo dõi đĩa io?


267

Tôi muốn thực hiện một số giám sát io đĩa chung trên máy chủ linux debian. Các công cụ tôi nên biết về màn hình đĩa io đó là gì để tôi có thể xem hiệu suất của đĩa có được tăng tối đa hoặc tăng đột biến vào một thời điểm nhất định trong suốt cả ngày không?


Câu trả lời:


225

Đối với xu hướng I / O của đĩa, có một vài lựa chọn. Yêu thích cá nhân của tôi là sarlệnh từ sysstat. Theo mặc định, nó cung cấp đầu ra như thế này:

09:25:01 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:35:01 AM     all      0.11      0.00      0.01      0.00      0.00     99.88
09:45:01 AM     all      0.12      0.00      0.01      0.00      0.00     99.86
09:55:01 AM     all      0.09      0.00      0.01      0.00      0.00     99.90
10:05:01 AM     all      0.10      0.00      0.01      0.02      0.01     99.86
Average:        all      0.19      0.00      0.02      0.00      0.01     99.78

Các %iowaitlà thời gian dành cho chờ đợi vào I / O. Sử dụng gói Debian, bạn phải kích hoạt trình thu thập thông qua /etc/default/sysstattệp cấu hình sau khi cài đặt gói.

Để xem việc sử dụng hiện tại bị phá vỡ bởi thiết bị, bạn có thể sử dụng iostatlệnh, cũng từ gói sysstat:

$ iostat -x 1
Linux 3.5.2-x86_64-linode26 (linode)    11/08/2012      _x86_64_        (4 CPU)

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           0.84    0.00    0.08    1.22    0.07   97.80

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
xvda              0.09     1.02    2.58    0.49   112.79    12.11    40.74     0.15   48.56   3.88   1.19
xvdb              1.39     0.43    4.03    1.82    43.33    18.43    10.56     0.66  112.73   1.93   1.13

Một số tùy chọn khác có thể hiển thị việc sử dụng đĩa trong đồ thị xu hướng là muninxương rồng .


Munin hoặc Cacti là những gì tôi đang tìm kiếm. Cảm ơn các con trỏ.
camomileCase

6
Lưu ý rằng% iowait chỉ hiển thị thời gian khi kernel không có gì khác để làm ngoài việc chờ IO. Trên máy chủ bị ràng buộc 100% CPU, con số này sẽ bằng 0 bất kể IO đang làm bao nhiêu IO.
Jürgen Strobel

iter -x dm-0 | Thiết bị grep; iter -xd 2 -y dm-0 | grep dm-0
Juan Medina

104

Có một cái nhìn tại iotop.

Hoặc iốt, nếu đó là cách suy nghĩ của bạn nhiều hơn.

Lưu ý: Điều này đòi hỏi ít nhất kernel 2.6.20 để hoạt động.


Đây không chỉ là Linux mà còn yêu cầu kernel mới hơn (hoặc được vá).
jordanm

Chúng có vẻ tốt để tìm hiểu những gì đang diễn ra ngay bây giờ, nhưng tôi đang tìm kiếm giám sát hình ảnh lớn hơn.
camomileCase

8
@camomileCase - bạn đã không chỉ định điều đó trong câu hỏi của mình ...
tink

90

Tôi thích dstat. Nó có thể hiển thị tổng số và thống kê trên mỗi đĩa và thậm chí cả thiết bị md (RAID), cũng có thể sử dụng màu sắc để có cái nhìn tổng quan hơn:

$ dstat -tdD total,sda,sdb,sdc,md1 60 
----system---- -dsk/total----dsk/sda-----dsk/sdb-----dsk/sdc-----dsk/md1--
     time     | read  writ: read  writ: read  writ: read  writ: read  writ
08-11 22:08:17|3549k  277k: 144k   28k: 851k   62k: 852k   60k:  25k   82k
08-11 22:09:17|  60k  258k:1775B   15k:  13k   63k:  15k   60k:  68B   74k
08-11 22:10:17| 176k  499k:   0    14k:  41k  122k:  41k  125k: 273B  157k
08-11 22:11:17|  42k  230k:   0    14k:9830B   54k:  14k   51k:   0    70k
08-11 22:11:52|  28k  132k:   0  5032B:5266B   33k:9479B   28k:   0    37k
  • -t cho dấu thời gian
  • -d để thống kê đĩa
  • -D để chỉ định các thiết bị chính xác để báo cáo
  • 60trung bình hơn 60 giây. Màn hình được cập nhật mỗi giây, nhưng chỉ một lần trong 60 giây, một dòng mới sẽ được bắt đầu.

  • không được sử dụng trong ví dụ này, nhưng -ccó thể báo cáo phần trăm IO chờ, trong hầu hết các trường hợp có liên quan đến CPU đang chờ dữ liệu từ các đĩa.

Nó có sẵn cho hầu hết các bản phân phối Linux, nhưng đôi khi cần phải được cài đặt từ kho lưu trữ.


49

Chỉ từ các tệp trên máy tính của bạn (giả sử một hạt nhân gần đây) bạn có thể yêu cầu /sys/block/sda/stathoặc /proc/diskstats. Nó sẽ cần một số dịch, tuy nhiên. Nhưng thật tuyệt khi kiểm tra nhanh và bẩn.


22
/sys/block/sda/statđược ghi lại tại https://www.kernel.org/doc/Documentation/block/stat.txt
ignis

10
/proc/diskstatsđược ghi lại tại kernel.org/doc/Documentation/iostats.txt
Rikard Söderström

2
Lợi thế lớn cho câu trả lời này là không cần cài đặt công cụ. Nó chỉ ở đó. (Có khả năng :-)
Ben Aveling

2
ví dụ: echo "read io merge sector ticks io mèo / sys / block / vda / vda1 / stat
Ben Aveling

35

Một lựa chọn khác là sử dụng: sudo iotop -aoP

-a    Will show accumulated output
-o    Will only output 
-P    Will only show processes instead of threads

Chương trình này sẽ cho bạn biết bao nhiêu quá trình đã được ghi vào đĩa và đọc từ đĩa kể từ khi iotop được bắt đầu.


Tôi nghe thấy một cái gì đó truy cập vào đĩa, nhưng đầu ra tích lũy đang tăng rất chậm, đôi khi không phải trong một giây ... ???
Michael

Nếu bạn nghe thấy đĩa, nó có thể cũ và / hoặc chậm. Ổ cứng hiện đại có xu hướng rất yên tĩnh. Nó tạo ra loại âm thanh gì? Sử dụng smartctlđể xem đĩa có khỏe không.
rudolfbyker

8

Giám sát đĩa Io có thể được thực hiện bằng nhiều công cụ như sau.

  1. I điều hòa
  2. Iozone
  3. SAR
  4. vmstat

Ngoài ra, một số khái niệm hệ điều hành quan trọng là rất cần thiết để hiểu chúng..đọc hướng dẫn hoàn chỉnh Linux IO


2
iozone là để thử nghiệm, không phải giám sát: "Iozone là một công cụ đánh giá hệ thống tập tin. Điểm chuẩn tạo ra và đo lường nhiều hoạt động của tệp."
Andrew Beals

7

Một công cụ tuyệt vời khác để có cái nhìn tổng quan nhanh về việc tải đến từ đâu là atop

Nó có thể hiển thị cho bạn tổng quan về tất cả các tài nguyên (CPU, bộ nhớ / trao đổi, I / O mạng và đĩa) hoặc bạn có thể đi sâu vào một tài nguyên duy nhất và sắp xếp các quy trình theo mức độ chúng tiêu thụ.


5

Tại sao không thử nmon . Nó không đĩa và mạng với các quy trình. Ban đầu cho AIX nhưng nó đã được chuyển sang Linux từ vài năm nay.


1

Điều tốt nhất để làm nếu bạn muốn xem hiệu suất trong một thời gian dài là sử dụng Centreon , một công cụ mạnh mẽ được xây dựng trên Nagios . Centreon giúp bạn có thể theo dõi bằng cách vẽ biểu đồ biểu diễn của tài nguyên và nhiều thứ khác.


Những thứ khác là gì? Bất kỳ ảnh chụp màn hình? Hãy mở rộng câu trả lời của bạn.
Konrad Gajewski
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.