sysstat là một gói công cụ mạnh mẽ và linh hoạt trên hệ điều hành Linux, được sử dụng để giám sát và phân tích hiệu suất của hệ thống. Gói công cụ này bao gồm nhiều tiện ích dòng lệnh, mỗi tiện ích tập trung vào việc theo dõi và báo cáo các khía cạnh khác nhau của hoạt động hệ thống như sử dụng CPU, bộ nhớ, đĩa cứng, và mạng. Bằng cách sử dụng sysstat, quản trị viên hệ thống và người dùng có thể dễ dàng nắm bắt được tình trạng hoạt động của hệ thống, phát hiện kịp thời các vấn đề hiệu suất và tối ưu hóa hệ thống của mình.

Một số tính năng của sysstat:

  • iostat: Được sử dụng để kiểm tra các số liệu thống kê về thống kê CPU và thống kê I/O cho các thiết bị khối và phân vùng.
  • vmstat: Dùng để báo cáo thống kê bộ nhớ ảo.
  • mpstat : Được sử dụng cho các báo cáo và thống kê chi tiết về CPU.
  • pidstat: Thống kê về các tiến trình, CPU, bộ nhớ.
  • sar: Lưu và báo cáo chi tiết về các tài nguyên (CPU, Bộ nhớ, IO, Mạng, kernel,…).
  • sadf: Được sử dụng để hiển thị dữ liệu được tạo bởi sar ở các định dạng khác nhau (CSV hoặc XML).

Cài đặt sysstat

Gói sysstat có trong hầu hết các bản phân phối Linux. Để kiểm tra xem gói sysstat có khả dụng trên hệ thống của chưa bằng cách chạy lệnh sau:

sar -V

Nếu gói sysstat không có trên hệ thống của bạn, bạn có thể dễ dàng cài đặt với lệnh sau

apt-get -y install sysstat

MPSTAT

Sử dụng lệnh mpstat không chứa bất kỳ đối số nào thì sẽ hiển thị hoạt động trung bình của tất cả các CPU

Ta có kết quả như sau:

  • 05:50:11: Thời gian mà lệnh mpstat được thực thi.
  • all: Có nghĩa là tất cả các CPU.
  • %usr: Hiển thị tỷ lệ sử dụng CPU xảy ra trong khi thực thi ở cấp độ người dùng bao gồm các tiến trình, công việc người dùng đang chạy.
  • %nice: Tỷ lệ sử dụng CPU xảy ra trong khi thực hiện ở cấp độ người dùng với mức độ ưu tiên tốt.
  • %sys: Hiển thị tỷ lệ phần trăm sử dụng CPU xảy ra trong khi thực thi ở cấp hệ thống (kernel).
  • %iowait: Hiển thị phần trăm thời gian mà CPU không hoạt động trong thời gian hệ thống có yêu cầu đĩa I/O.
  • %irq: Hiển thị phần trăm thời gian mà CPU dành cho các ngắt phần cứng dịch vụ.
  • %soft: Hiển thị phần trăm thời gian mà CPU dành cho các phần mềm dịch vụ bị gián đoạn.
  • %steal: Hiển thị phần trăm thời gian dành cho sự chờ đợi CPU trong khi trình ảo hóa đang phục vụ một bộ xử lý ảo khác. Loại sử dụng CPU này sẽ chỉ xảy ra trong trường hợp máy ảo.
  • %guest: Hiển thị phần trăm thời gian dành cho CPU để chạy bộ xử lý ảo.
  • %gnice: Hiển thị phần trăm thời gian mà CPU dành điều hành một guest.
  • %idle: Hiển thị phần trăm thời gian mà CPU không hoạt động và hệ thống không có yêu cầu đĩa I/O.

Hiển thị số liệu thống kê về tất cả các CPU

mpstat -P ALL

lệnh mpstat với tùy chọn -P ALL, sẽ hiển thị số liệu thống kê về tất cả các CPU từng cái một bắt đầu từ 0

Hiển thị số liệu thống kê cho y số lần lặp lại sau khoảng thời gian x giây với trung bình của mỗi cpu sử dụng như sau:

mpstat -P ALL x y

Sử dụng tùy chọn -I ALL

mpstat -I ALL

Kết quả trả về tổng số thống kê ngắt về mỗi bộ xử lý như CPU, SCPU và SUM.

Hiển thị toàn bộ thông tin

mpstat -A

PIDSTAT

Lệnh pidstat được sử dụng để giám sát các tác vụ riêng lẻ hiện đang được quản lý bởi nhân Linux. Lệnh pidstat cũng có thể được sử dụng để giám sát các tiến trình con của các tác vụ được chọn.

Cú pháp lệnh pidstat:

pidstat [option] [interval] [count]

Trong kết quả chúng ta có thể thấy:

  • PID: Số PID của tiến trình được theo dõi.
  • %usr: Phần trăm CPU được sử dụng bởi tiến trình trong khi thực thi ở cấp độ người dùng.
  • %system: Phần trăm CPU được sử dụng bởi tiến trình trong khi thực thi ở cấp hệ thống. * %guest: Phần trăm CPU được sử dụng cho tiến trình trong bộ xử lý ảo.
  • %CPU: Tổng phần trăm thời gian CPU được sử dụng bởi tiến trình.
  • CPU: Số bộ xử lý mà tiến trình được đính kèm.
  • Command: Tên lệnh của tiến trình.

Hiển thị tất cả các tiến trình hoạt động và không hoạt động

pidstat -p ALL

sử dụng lệnh pidstat -d N để lấy số liệu thống kê I/O (N là khoảng thời gian tính bằng giây để có được số liệu thống kê được làm mới)

Tùy chọn này hữu ích trong trường hợp hệ thống của bạn đang trải qua I/O nặng và bạn muốn biết về các tiến trình tiêu tốn tài nguyên cao

Để biết số liệu thống kê cpu cùng với tất cả các luồng về id tiến trình trong khoảng thời gian, sử dụng lệnh:

pidstat -t

Sử dụng tùy chọn –rh để xem về việc sử dụng bộ nhớ của các tiến trình thường thay đổi mức sử dụng của chúng trong khoảng thời gian 2s

pidstat -rh 2 4

Để xem tiến trình nào đọc và ghi từ ổ đĩa trong mỗi 20 giây, ta dùng lệnh

pidstat -dl 20

Với câu lệnh này ta có thể theo dõi sự biến đổi từ đó phát hiện ra trong thiết bị có sự hoạt động của malware hay không.

SAR

Lệnh sar báo cáo về hiệu suất của toàn hệ thống giúp chúng ta xác định vị trí và cung cấp trợ giúp để tìm ra giải pháp cho các vấn đề hiệu suất của toàn hệ thống. Linux Kernel duy trì một số bộ đếm bên trong, theo dõi tất cả các yêu cầu, thời gian hoàn thành và số lượng I/O,… Từ tất cả các thông tin này, sar tính toán tỷ lệ của các yêu cầu để tìm hiểu về các khu vực tắc nghẽn.

Sử dụng lệnh sar và tạo một tập tin có tên sartest trong thư mục hiện tại. Cùng với tùy chọn –u dành cho chi tiết CPU và sẽ thu thập 5 báo cáo trong khoảng thời gian 2 giây như sau

sar -u -o sartest 2 5

Ta thu được kết quả như sau:

  • 09:03:21: Thời gian mà lệnh sar được thực thi.
  • all: Có nghĩa là tất cả các CPU.
  • %usr: Hiển thị tỷ lệ sử dụng CPU xảy ra trong khi thực thi ở cấp độ người dùng bao gồm các tiến trình, công việc người dùng đang chạy.
  • %nice: Tỷ lệ sử dụng CPU xảy ra trong khi thực hiện ở cấp độ người dùng với mức độ ưu tiên tốt.
  • %system: Hiển thị tỷ lệ phần trăm sử dụng CPU xảy ra trong khi thực thi ở cấp hệ thống (kernel).
  • %iowait: Hiển thị phần trăm thời gian mà CPU không hoạt động trong thời gian hệ thống có yêu cầu đĩa I/O.
  • %steal: Hiển thị phần trăm thời gian dành cho sự chờ đợi CPU trong khi trình ảo hóa đang phục vụ một bộ xử lý ảo khác. Loại sử dụng CPU này sẽ chỉ xảy ra trong trường hợp máy ảo.
  • %idle: Hiển thị phần trăm thời gian mà CPU không hoạt động và hệ thống không có yêu cầu đĩa I/O.

Kiểm tra độ dài hàng đợi chạy, tổng số quy trình và tải trung bình bằng sử dụng tùy chọn –q

sar -q 2 4

Kiểm tra số liệu thống kê về các file system

sar -F 2 4

Xem số liệu thống kê mạng, sử dụng

sar -n DEV 1 2

Hiển thị số liệu thống kê thiết bị đĩa

sar -d 1 2

Hiển thị số liệu thống kê bộ nhớ

sar -r 1 2

Kết luận

Qua bài viết trên, giúp cho chúng ta biết cách sử dụng bộ công cụ Sysstat trên hệ điều hành Linux. Với các ví dụ về lệnh sar, mptstatpidstat giúp cho chúng ta có thể quản lý hệ thống của chúng ta một cách an toàn và hiệu quả nhất.

Cảm ơn bạn đã đọc bài viết này. Nếu bạn có bất kỳ câu hỏi hoặc ý kiến đóng góp, đừng ngần ngại để lại bình luận bên dưới. Chúng ta hãy tiếp tục chia sẻ kiến thức và học hỏi từ nhau.

vanluong