Xác định tình trạng tắc nghẽn ổ cứng bằng 5 lệnh Linux này

Tác giả Starlink, T.M.Một 29, 2024, 04:10:22 CHIỀU

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 2 Khách đang xem chủ đề.

Đừng để vấn đề về phần cứng cản trở bạn.

Tốc độ máy tính Linux của bạn có thể di chuyển dữ liệu giữa ổ cứng và RAM có tác động trực tiếp đến hiệu suất của nó. Năm lệnh này sẽ giúp bạn khắc phục sự cố chậm và hiệu suất bị giật.

1. Làm việc chăm chỉ hay làm việc ít? Năm cách để tìm ra

Từ lúc máy tính khởi động cho đến khi hoạt động, máy tính cần phải đọc và ghi vào ổ cứng.

Ổ đĩa của bạn có thông lượng dữ liệu tối đa. Có giới hạn về tốc độ chúng có thể đọc và ghi dữ liệu tại. Điều đó có nghĩa là việc khởi động, tải chương trình và tiện ích, và lưu dữ liệu như tài liệu, cài đặt và tải xuống đều bị giới hạn tốc độ theo các giới hạn tích hợp sẵn của ổ cứng.


Ổ đĩa hiện đại được thiết kế để có tốc độ nhanh, đặc biệt là ổ đĩa trạng thái rắn, nhưng ngay cả những ổ đĩa nhanh nhất cũng có thể bị tồn đọng các yêu cầu dữ liệu nếu có quá nhiều tiến trình cố gắng truy cập chúng cùng một lúc.

Nếu máy tính của bạn chạy chậm liên tục hoặc có những lúc máy tính có vẻ giật và chậm, hãy sử dụng năm lệnh sau để xem ổ cứng có bị tắc nghẽn không.

2. Đo Thống kê I/O với iostat

Lệnh iostat là một phần của gói sysstat. Trên Ubuntu 24.10, Manjaro mới nhất và máy tính Fedora Linux 40 mà chúng tôi đã thử nghiệm, iostat đã được cài đặt. Nếu bạn chưa cài đặt, hãy tìm gói sysstat trong kho lưu trữ của bản phân phối của bạn.

Lệnh gọi đơn giản nhất là lệnh iostat không có bất kỳ tùy chọn nào.

Mã nguồn [Chọn]
iostat

Nếu bạn quan tâm đến một ổ đĩa duy nhất, hãy sử dụng tùy chọn -p (thiết bị và phân vùng) và cung cấp tên thiết bị của ổ cứng. Bạn cũng có thể lấy số liệu thống kê theo megabyte mỗi giây bằng cách sử dụng tùy chọn -m (megabyte).

Mã nguồn [Chọn]
iostat -m -p sda

Báo cáo chứa số liệu thống kê về ổ cứng và các phân vùng của nó. Để báo cáo về một phân vùng duy nhất, hãy thêm số phân vùng vào mã định danh ổ cứng.

Mã nguồn [Chọn]
iostat -m -p sda2

Báo cáo chứa một dòng thông tin về CPU và sau đó là thông tin chi tiết về các thiết bị đã chọn.

Đối với bài tập này, các giá trị CPU cần tập trung vào là các số liệu %iowait và %idle. Số liệu %iowait cho biết tỷ lệ phần trăm thời gian (kể từ khi khởi động) mà CPU đã ngồi chờ các yêu cầu đầu vào/đầu ra của ổ cứng được phục vụ để có thể tiếp tục.

Thống kê %idle là phần trăm thời gian kể từ khi khởi động, khi CPU không hoạt động và không có yêu cầu nhập/xuất đĩa nào đang chờ xử lý.

Lý tưởng nhất là con số %iowait phải càng thấp càng tốt. Máy này đang gặp khó khăn nghiêm trọng do hiệu suất ổ cứng và số lượng yêu cầu đầu vào ra. Chúng ta có thể biết thêm chi tiết bằng cách xem thông tin thiết bị và phân vùng. Chúng ta có thể thấy có rất nhiều yêu cầu ghi được phân vùng này xử lý.

3. Một cái nhìn thời gian thực: dstat

Quá trình phát triển gói dstat gốc đã bị đình trệ từ nhiều năm trước. Nó đã được viết lại và cập nhật như một thành phần của gói Performance Co-Pilot. Bạn sẽ cần cài đặt gói này.

Trên Ubuntu, lệnh là:

Mã nguồn [Chọn]
sudo apt install pcp
Một Fedora, gõ:

Mã nguồn [Chọn]
sudo dnf install pcp pcp-system-tools
Trên Manjaro, sử dụng lệnh này:

Mã nguồn [Chọn]
sudo pacman -S pcp
Chúng ta sẽ khởi động dstat và sử dụng tùy chọn -D (ổ đĩa) để có thể tập trung vào ổ đĩa đầu tiên, sda.

Mã nguồn [Chọn]
dstat -D sda

Một dòng thông tin mới được thêm vào màn hình sau mỗi nửa giây hoặc lâu hơn. Chúng ta có thể thấy rằng có thời gian chờ cao đáng lo ngại, như trước đây, và có rất nhiều hoạt động đọc và ghi.

Vì báo cáo được cập nhật khi bạn xem, bạn có thể xem đây là nhu cầu ngắn hạn, không liên tục hay liên tục trên ổ cứng của bạn. Nhấn Ctrl+C để dừng lệnh.

4. Khám phá độ trễ I/O với ioping

Trừ khi bạn đã thực hiện việc này trước đó, nếu không có lẽ bạn sẽ phải cài đặt ioping.

Trên Ubuntu, hãy sử dụng lệnh này:

Mã nguồn [Chọn]
sudo apt install ioping
Trên Fedora, lệnh là:

Mã nguồn [Chọn]
sudo dnf install ioping
Trên Manjaro, bạn cần nhập:

Mã nguồn [Chọn]
sudo pacman -s ioping
Giống như công cụ mạng ping, ioping trả về một thống kê thời gian. Nó tạo một yêu cầu ổ cứng và báo cáo thời gian cần thiết để yêu cầu đó được xác nhận. Độ trễ trước khi ổ cứng phản hồi là độ trễ đầu vào/đầu ra. Bạn muốn độ trễ này càng thấp càng tốt.

Bạn sẽ cần sử dụng sudo, vì ioping đọc trực tiếp từ các tệp thiết bị được liên kết với các thiết bị phần cứng. Lệnh này sẽ xem xét ổ cứng đầu tiên trong máy tính thử nghiệm của chúng tôi. Bạn có thể chỉ định một phân vùng cụ thể nếu muốn, bằng cách thêm số phân vùng, như sda1.

Mã nguồn [Chọn]
sudo ioping /dev/sda

Chạy cùng một lệnh trên cùng một máy tính mà không có các tiến trình đang tấn công ổ cứng, báo cáo độ trễ dưới 7ms. Các tiến trình đang tấn công ổ cứng đang làm chậm thời gian phản hồi xuống tới 10 lần.

Để dừng lệnh, hãy nhấn Ctrl+C. Bạn sẽ thấy bản tóm tắt ngắn gọn về phiên làm việc.


5. Giống như lệnh top cho ổ cứng: iotop

Một lần nữa, iotop khó có thể có trên máy tính của bạn trừ khi bạn đã cài đặt thủ công trước đó.

Để cài đặt iotop trên Ubuntu, lệnh là:

Mã nguồn [Chọn]
sudo apt install iotop
Trên Fedora, lệnh của bạn là:

Mã nguồn [Chọn]
sudo dnf install iotop
Người dùng Manjaro cần nhập:

Mã nguồn [Chọn]
sudo pacman -S iotop
Lệnh iotop đọc thông tin trực tiếp từ API của hạt nhân, chỉ dành cho người dùng root, do đó bạn cần sử dụng sudo để khởi chạy lệnh.

Mã nguồn [Chọn]
iotop

Nó có giao diện và cảm nhận giống như lệnh top thông thường. Có một bảng thông tin ở đầu màn hình và một màn hình hiển thị động các quy trình bên dưới, được sắp xếp theo cột Disk Write. Các phím mũi tên Trái và Phải thay đổi cột mà màn hình được sắp xếp.

Chúng ta có thể thấy ngay rằng có ba lệnh cp tạo ra phần lớn hoạt động của ổ cứng. Hữu ích là chúng ta cũng được hiển thị tên của người dùng sở hữu các quy trình ghi nặng đó và lệnh họ đã ban hành để khởi chạy chúng.

Nhấn Q để đóng ứng dụng.

6. Giống như lệnh top cho các thiết bị phần cứng: atop

Lệnh atop cũng là một công cụ giống top, nhưng chuyên dùng để báo cáo về phần cứng.

Để cài đặt trên Ubuntu, lệnh là:

Mã nguồn [Chọn]
sudo apt install atop
Trên Fedora, lệnh của bạn là:

Mã nguồn [Chọn]
sudo dnf install atop
Người dùng Manjaro cần nhập:

Mã nguồn [Chọn]
sudo pacman -S atop
Lần đầu tiên bạn nhìn thấy atop có thể gây sốc - có quá nhiều thông tin đòi hỏi sự chú ý của bạn. Nó trông giống như một top-heavy top thực sự. Bạn có thể bắt đầu atop với hoặc không có sudo, nhưng bạn sẽ có được màn hình phong phú và chính xác hơn nếu bạn sử dụng sudo.

Mã nguồn [Chọn]
sudo atop

Chúng ta có thể thấy ổ cứng được sử dụng 90% thời gian, đây là một dấu hiệu cảnh báo nghiêm trọng.

7. Đọc Hướng dẫn tuyệt vời

Tất cả các lệnh này cung cấp cho bạn một bộ thông tin và tùy chọn phong phú, khiến chúng rất linh hoạt và hữu ích cho việc khắc phục sự cố. Bạn được khuyến khích đọc các trang hướng dẫn cho các lệnh mà bạn nghĩ mình sẽ sử dụng để không bỏ lỡ bất kỳ tính năng thú vị nào.