(Một anh chàng Windows hỏi) Đo độ trễ của đĩa trên Linux: Tôi có phiền không?


11

Trên Windows, bất cứ khi nào tôi muốn xác thực / xác nhận rằng có thể có các sự cố liên quan đến IO trên ổ đĩa mà cơ sở dữ liệu hoặc ứng dụng có độ trễ thấp khác tồn tại, tôi sẽ kiểm tra độ trễ của đĩa.

Nếu tôi thấy bộ đếm / chuyển bộ trung bình của Windows trung bình > 18-20ms, thì hoàng yến của tôi trong một mỏ than đã chết và tôi cần phải điều tra thêm. Thả chết đơn giản.

Bây giờ tôi đang xem Linux và không thấy số liệu dựa trên độ trễ tương tự. Nghiên cứu nhanh mà tôi đã thực hiện chỉ ra rằng tôi thậm chí có thể KHÔNG MUỐN ... Tôi thấy rất nhiều tài liệu tham khảo về I / O Chờ đợi là cách mà hầu hết mọi người theo dõi điều này.

Có một quy tắc sân bóng mà bạn sử dụng liên quan đến điều này? Ví dụ: BẤT K i chờ đợi tôi thấy xấu cho khối lượng của cơ sở dữ liệu? Có một lệnh i điều chỉnh đơn giản nào mang lại cho tôi cái nhìn tốt hơn về sức khỏe tổng thể của đĩa hơn là chỉ nhìn nhãn cầu TOP?

Cảm ơn nhiều!


4
Bạn có thể tra cứuioping
ewwhite

Cảm ơn, @ewwhite. Tôi đoán tôi chỉ tự hỏi liệu tôi có cần thay đổi hoàn toàn sự tập trung của mình không và thay vào đó theo dõi điều này theo một cách khác, bạn biết không?
Russell Christopher

2
Kích hoạt bộ sưu tập sysstat trên hệ thống của bạn. Sau đó, bạn có thể kiểm tra tỷ lệ phần trăm CPU iowait, rất hữu ích để chẩn đoán sự chậm chạp liên quan đến IO.
EEAA

2
@RussellChristopher Bạn có thể xem kết sarquả đầu ra ở đây . Hãy chú ý đến %iowaitcột.
EEAA

@Matt trong khi nó RẤT tương tự, trọng tâm hơi khác nhau. QA đó tập trung hơn vào việc thực hiện các thử nghiệm trong môi trường mô phỏng, trong đó Q này dường như thiên về giám sát hiệu suất hiện tại trong môi trường sản xuất.
BeowulfNode42

Câu trả lời:


12

Cá nhân tôi sử dụng lệnh iostat -xk 10và nhìn vào awaitcột.

  • -x Hiển thị số liệu thống kê mở rộng.
  • -k Hiển thị số liệu thống kê tính bằng kilobyte mỗi giây. Hoặc sử dụng m cho megabyte / s.
  • 10 khoảng thời gian hiển thị trong vài giây

Đây là một số liệu gần như giống hệt với các cửa sổ / Truyền đĩa trung bình và được liệt kê bằng ms thay vì giây. Vì vậy, các quy tắc tương tự có thể được áp dụng, mặc dù điều này sẽ phụ thuộc vào tất cả các loại. Tôi thường thấy rằng người dùng bắt đầu càu nhàu ở 15ms và 20ms là rất tệ.

Nhấn ctrl + c để thoát hoặc chỉ định số lần lặp để xem với tham số đếm. Lưu ý rằng kết quả lặp đầu tiên bị sai lệch nhiều do mẫu thời gian nhỏ được sử dụng trong lần lặp đầu tiên.

Từ man iostattrang

chờ đợi Thời gian trung bình (tính bằng mili giây) cho các yêu cầu I / O được cấp cho thiết bị sẽ được phục vụ. Điều này bao gồm thời gian dành cho các yêu cầu trong hàng đợi và thời gian phục vụ chúng.

Chỉnh sửa: await là số liệu chính tôi sử dụng để xem đĩa theo tải sản xuất để xem liệu thông lượng và iops của nó có thể theo kịp nhu cầu hay không.

Chỉ số% iowait nói thêm về sự cân bằng giữa việc sử dụng cpu và đĩa. % iostat sẽ vẫn thấp hơn dự kiến ​​nếu cả hoạt động của cpu và đĩa đều cao. Mặt khác, bắt đầu ở mức độ sử dụng đĩa khá thấp,% iuler có thể tương đối cao nếu cpu không hoạt động. Điều này đang được chờ đợi cũng cần phải được thực hiện với một hạt muối. Nếu có nhiều lần đọc / ghi tuần tự xảy ra, nó sẽ nghiêng con số xuống giá trị thấp hơn và quy tắc ngón tay cái 18 ~ 20ms của bạn sẽ không hữu ích trong các điều kiện này vì hầu hết các đoạn được viết sẽ là dữ liệu tuần tự và sẽ được phục vụ bởi đĩa rất nhanh, trong khi io ngẫu nhiên khác sẽ chờ, do hệ thống Hàng đợi lệnh (NCQ) được tích hợp vào đĩa để tối ưu hóa thông lượng bằng cách để đĩa chọn chuỗi yêu cầu được phục vụ.


Cảm ơn @ beowulfNode42. Đây có phải là số liệu chính mà bạn sử dụng theo nghĩa "mắt xấu" không? Relic mới, dường như tập trung vào phần trăm chờ đợi và sử dụng đĩa (đọc và ghi) ... Điều này khiến tôi tự hỏi liệu tôi có đang theo đuổi số liệu sai hay không, hoặc HỌ chỉ đơn giản là báo cáo thông tin ít hữu ích hơn ....
Russell Christopher

@RussellChristopher các số liệu thống kê khác cung cấp bối cảnh bắt buộc để diễn giải thông tin đang chờ. ví dụ: có rất nhiều iops (r / và w / s), rất nhiều MB / s, là kích thước yêu cầu avg (avgrq-sz) lớn hay nhỏ và kích thước hàng đợi avg là gì (avgqu-sz). Có, cùng với các số liệu liên quan đến cpu% iowait,% user,% system, v.v để xem đĩa có làm chậm cpu hay ngược lại không.
BeowulfNode42
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.