Giới thiệu
Trong lab này, bạn sẽ học cách sử dụng lệnh ps
(process status) của Linux để giám sát và quản lý các tiến trình đang chạy trên hệ thống của bạn. Lệnh ps
là một công cụ cơ bản cho các systemadmin và nhà phát triển, cung cấp thông tin chi tiết về các tiến trình hiện đang chạy, bao gồm ID tiến trình, người dùng, mức sử dụng CPU và bộ nhớ, v.v. Bạn sẽ bắt đầu bằng cách hiểu cách sử dụng cơ bản của lệnh ps
, sau đó tìm hiểu cách lọc các tiến trình theo người dùng và cuối cùng khám phá việc giám sát mức sử dụng CPU và bộ nhớ của các tiến trình đang chạy. Lab này bao gồm các kỹ năng giám sát và quản lý hệ thống thiết yếu, rất quan trọng để quản lý hiệu quả các hệ thống dựa trên Linux.
Tìm hiểu lệnh ps
Trong bước này, bạn sẽ tìm hiểu về lệnh ps
(process status), đây là một lệnh Linux cơ bản được sử dụng để hiển thị thông tin về các tiến trình đang chạy trên hệ thống.
Lệnh ps
cung cấp ảnh chụp nhanh về các tiến trình hiện đang chạy trên hệ thống, bao gồm ID tiến trình (PID), người dùng, mức sử dụng CPU và bộ nhớ, và các thông tin liên quan khác.
Hãy bắt đầu bằng cách chạy lệnh ps
cơ bản:
ps
Ví dụ đầu ra:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
5678 pts/0 00:00:00 ps
Đầu ra hiển thị tiến trình shell hiện tại (bash
) và chính lệnh ps
.
Để xem thông tin chi tiết hơn về các tiến trình đang chạy, bạn có thể sử dụng các tùy chọn sau:
ps -ef
Ví dụ đầu ra:
UID PID PPID C STIME TTY TIME CMD
labex 1234 4321 0 10:30 pts/0 00:00:00 /bin/bash
labex 5678 1234 0 10:30 pts/0 00:00:00 ps -ef
Tùy chọn -e
hiển thị tất cả các tiến trình và tùy chọn -f
cung cấp danh sách đầy đủ định dạng, bao gồm ID người dùng (UID), ID tiến trình (PID), ID tiến trình cha (PPID), mức sử dụng CPU (C), thời gian bắt đầu (STIME), thiết bị đầu cuối (TTY), thời gian CPU (TIME) và lệnh (CMD).
Bạn cũng có thể lọc đầu ra theo các tiêu chí cụ thể, chẳng hạn như người dùng đang chạy các tiến trình:
ps -u labex
Ví dụ đầu ra:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
5678 pts/0 00:00:00 ps
Lệnh này hiển thị tất cả các tiến trình thuộc sở hữu của người dùng labex
.
Lọc tiến trình theo người dùng
Trong bước này, bạn sẽ tìm hiểu cách lọc danh sách các tiến trình đang chạy theo người dùng sở hữu chúng.
Lệnh ps
cung cấp một số tùy chọn để lọc danh sách tiến trình, một trong số đó là tùy chọn -u
hoặc --user
. Tùy chọn này cho phép bạn hiển thị các tiến trình thuộc sở hữu của một người dùng cụ thể.
Hãy bắt đầu bằng cách liệt kê tất cả các tiến trình thuộc sở hữu của người dùng labex
:
ps -u labex
Ví dụ đầu ra:
PID TTY TIME CMD
1234 pts/0 00:00:00 bash
5678 pts/0 00:00:00 ps
Lệnh này hiển thị tất cả các tiến trình thuộc sở hữu của người dùng labex
.
Bạn cũng có thể sử dụng lệnh grep
để lọc thêm đầu ra của lệnh ps
. Ví dụ: để tìm tất cả các tiến trình thuộc sở hữu của người dùng labex
đang chạy lệnh bash
:
ps -ef | grep -i labex | grep -i bash
Ví dụ đầu ra:
labex 1234 4321 0 10:30 pts/0 00:00:00 /bin/bash
Trong lệnh này, ps -ef
liệt kê tất cả các tiến trình, grep -i labex
đầu tiên lọc đầu ra để chỉ hiển thị các tiến trình thuộc sở hữu của người dùng labex
và grep -i bash
thứ hai lọc đầu ra để chỉ hiển thị các tiến trình đang chạy lệnh bash
.
Tùy chọn -i
trong các lệnh grep
làm cho tìm kiếm không phân biệt chữ hoa chữ thường, vì vậy nó sẽ khớp với cả chữ hoa và chữ thường của "labex" và "bash".
Giám sát mức sử dụng CPU và bộ nhớ
Trong bước này, bạn sẽ tìm hiểu cách sử dụng lệnh ps
để giám sát mức sử dụng CPU và bộ nhớ của các tiến trình đang chạy.
Để xem mức sử dụng CPU và bộ nhớ của tất cả các tiến trình, bạn có thể sử dụng lệnh ps
với tùy chọn -o
để tùy chỉnh đầu ra:
ps -eo pid,user,%cpu,%mem,cmd
Ví dụ đầu ra:
PID USER %CPU %MEM COMMAND
1234 labex 2.0 0.1 /bin/bash
5678 labex 0.5 0.2 ps -eo pid,user,%cpu,%mem,cmd
Lệnh này hiển thị thông tin sau cho mỗi tiến trình:
PID
: ID tiến trìnhUSER
: Người dùng sở hữu tiến trình%CPU
: Phần trăm CPU mà tiến trình sử dụng%MEM
: Phần trăm bộ nhớ mà tiến trình sử dụngCOMMAND
: Lệnh đã khởi động tiến trình
Bạn cũng có thể sắp xếp đầu ra theo mức sử dụng CPU hoặc bộ nhớ để xác định các tiến trình tiêu thụ nhiều tài nguyên hệ thống nhất:
ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu
Ví dụ đầu ra:
PID USER %CPU %MEM COMMAND
5678 labex 2.0 0.2 ps -eo pid,user,%cpu,%mem,cmd --sort=-%cpu
1234 labex 1.5 0.1 /bin/bash
Lệnh này sắp xếp đầu ra theo mức sử dụng CPU giảm dần, vì vậy tiến trình sử dụng nhiều CPU nhất sẽ được hiển thị trước tiên.
Tương tự, bạn có thể sắp xếp theo mức sử dụng bộ nhớ:
ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem
Ví dụ đầu ra:
PID USER %CPU %MEM COMMAND
5678 labex 2.0 0.2 ps -eo pid,user,%cpu,%mem,cmd --sort=-%mem
1234 labex 1.5 0.1 /bin/bash
Lệnh này sắp xếp đầu ra theo mức sử dụng bộ nhớ giảm dần, vì vậy tiến trình sử dụng nhiều bộ nhớ nhất sẽ được hiển thị trước tiên.
Tóm tắt
Trong lab này, bạn đã tìm hiểu về lệnh ps
(process status), đây là một lệnh Linux cơ bản được sử dụng để hiển thị thông tin về các tiến trình đang chạy trên hệ thống. Bạn bắt đầu với lệnh ps
cơ bản và khám phá các tùy chọn để hiển thị thông tin chi tiết hơn, chẳng hạn như các tùy chọn -e
và -f
. Bạn cũng đã học cách lọc danh sách tiến trình theo người dùng sở hữu các tiến trình đó, bằng cách sử dụng tùy chọn -u
hoặc --user
. Ngoài ra, bạn đã đề cập đến cách giám sát mức sử dụng CPU và bộ nhớ của các tiến trình đang chạy.
Lab cung cấp một sự hiểu biết toàn diện về lệnh ps
và các ứng dụng thực tế của nó trong việc quản lý và giám sát các tiến trình đang chạy trên hệ thống Linux.