CodeGym /Các khóa học /Docker SELF /Quản lý các tiến trình hệ thống: ps, top, htop

Quản lý các tiến trình hệ thống: ps, top, htop

Docker SELF
Mức độ , Bài học
Có sẵn

Quản lý các tiến trình hệ thống: ps, top, htop

1. Lệnh ps — cái nhìn tĩnh về các quy trình

Nếu Linux là một nhà hàng, thì quy trình sẽ là đầu bếp trong nhà bếp. Đây là phiên bản thực thi của một chương trình, tồn tại trong bộ nhớ. Khi bạn chạy một ứng dụng hoặc tập tin thực thi từ dòng lệnh, một quy trình được tạo ra, sau đó thực hiện các nhiệm vụ của mình cho đến khi hoàn tất.

Từ góc độ lập trình, các quy trình được quản lý bởi nhân Linux, và mỗi quy trình có một mã định danh duy nhất — PID (Process ID).

Lệnh ps (process status) — là lệnh cơ bản để xem danh sách các quy trình. Nó cung cấp một snapshot tĩnh của các quy trình hiện tại trong hệ thống. Sử dụng ps, bạn có thể nhận thông tin về các quy trình đang chạy: ID của chúng, chủ sở hữu, dòng lệnh, tài nguyên đã sử dụng.

Cú pháp cơ bản

Đây là cách lệnh cơ bản trông như thế nào:

ps

Điều này sẽ hiển thị các quy trình đang chạy trong terminal hiện tại.

Nhưng như vậy thì chán quá! Hãy thêm chút gia vị nhé:

ps aux

Ở đây:

  • a — hiển thị các quy trình của người dùng khác.
  • u — thêm định dạng dễ đọc hơn.
  • x — bao gồm các quy trình không liên kết với terminal.

Ví dụ đầu ra:

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root           1  0.0  0.1  22556  1044 ?        Ss   12:34   0:01 /sbin/init
student      2345  0.1  0.2  34567  2048 pts/0    S+   12:35   0:02 bash
student      4567  0.3  0.5  56789  5144 pts/0    R+   12:36   0:03 ps aux
  • USER: người dùng đã khởi chạy quy trình.
  • PID: mã định danh quy trình.
  • %CPU: phần trăm sử dụng CPU.
  • %MEM: phần trăm sử dụng bộ nhớ.
  • COMMAND: lệnh khởi chạy quy trình.

Các tùy chọn nâng cao

  1. Xem cấu trúc cây của các quy trình:

    ps -ejH
    

    Điều này sẽ giúp bạn hiểu được quy trình nào là "con" của các quy trình khác.

  2. Lọc theo PID:

    ps -p 1234
    

    Nơi 1234 là PID của bạn. Hiển thị chỉ quy trình được chỉ định.

  3. Hiển thị tất cả các quy trình cùng với dòng lệnh đầy đủ:

    ps -ef
    

2. Lệnh top — Giám sát quy trình động

top giống như TV cho các quy trình. Bạn có thể theo dõi cách các quy trình thay đổi theo thời gian thực. Nếu bạn đang chạy một server hoặc máy tính của bạn bắt đầu "bị chậm", top chính là người bạn tốt nhất của bạn. Thông qua nó, bạn sẽ thấy những quy trình nào sử dụng nhiều CPU và bộ nhớ nhất.

Những điều cơ bản khi sử dụng

Chỉ cần nhập trong terminal:

top

Ví dụ kết quả:

  • Dòng trên cùng hiển thị "tải" của hệ thống.
  • Phần giữa báo cáo về các nhiệm vụ (tổng cộng, hoạt động, đang ngủ, zombie).
  • Phần dưới cùng dành riêng cho bộ nhớ.
  • Khối dưới cùng là danh sách các quy trình, nơi có rất nhiều thông tin hữu ích, bao gồm PID, USER, %CPU và COMMAND.

Điều hướng trong top

  • Nhấn k để kết thúc quy trình. Nhập PID.
  • Nhấn P để sắp xếp các quy trình theo CPU.
  • Nhấn M để sắp xếp theo sử dụng bộ nhớ.
  • Nhấn q để thoát.

3. Công cụ htop — giao diện tiện lợi

Nếu top có vẻ quá "thô sơ" với bạn, thì hãy chào đón htop. Đây là giao diện trực quan để giám sát quy trình. Nó có màu sắc, hỗ trợ chuột và dễ hiểu.

Cài đặt

Nếu htop chưa được cài đặt, hãy thêm nó:

sudo apt-get install htop # Đối với các bản phân phối dựa trên Debian
sudo yum install htop     # Đối với các bản phân phối dựa trên RedHat

Khởi chạy

Để khởi chạy htop, chỉ cần nhập:

htop

Ví dụ giao diện:

Ưu điểm của htop:

  • Khả năng cuộn danh sách quy trình.
  • Tô sáng bằng màu sắc cho CPU, bộ nhớ, swap.
  • Các phím tiện lợi để kết thúc quy trình (ví dụ: F9).

4. Bài tập thực hành

Bài 1: Tìm tiến trình "tham lam" nhất

  • Mở top hoặc htop.
  • Sắp xếp các tiến trình theo CPU và tìm PID của nó.

Bài 2: Kết thúc tiến trình

  • Sử dụng kill để "xử lý" tiến trình:
    kill <PID>
    

Bài 3: Phân tích tiến trình

  • Sử dụng ps để phân tích PID của tiến trình:
    ps -p <PID> -o pid,user,%cpu,%mem,cmd
    

Những điều cần chú ý và khuyến nghị

  1. Đừng giết các tiến trình nếu bạn không chắc chắn rằng chúng không quan trọng với hệ thống. Ví dụ, tiến trình có PID 1 — đó là init, nền tảng của hệ điều hành.
  2. Công cụ htop cần được cài đặt riêng nếu chưa có. Nếu lệnh không hoạt động, hãy kiểm tra cài đặt.
  3. Hãy chú ý đến quyền hạn. Kết thúc các tiến trình được chạy dưới tên người dùng khác có thể yêu cầu quyền admin.

Thực hành sẽ giúp bạn thấy rằng những công cụ này làm công việc với Linux trở nên linh hoạt và trực quan vô cùng. Bây giờ bạn là ông trùm của các tiến trình rồi đó!

Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION