Câu lệnh giám sát hệ thống linux phổ biến

tampm

Gà con
#1
Giám sát hệ thống như thế nào ? để làm gì
Hệ thống nào thì củng cần giám sát để có được số liệu nhất định phục vụ cho việc quản trị củng như phát triển hệ thống !

Nếu như windows cung cấp cho ta task manager thì linux củng vậy. Dĩ hiên với linux thì có yếu thế hơn phần giao diện không được đẹp mắt nhưng nói về mặt chi tiết thì

củng không kém cạnh đâu nhé. Chúng ta cần tìm hiểu 1 số khái niệm về :

Cpu, Memory, Swap, Cache, Dung lượng ổ đĩa , I/O, Bandwitdh.

Thứ 1 : lệnh ps ( process )
Để xem các process đang chạy trong linux ta dùng lệnh như hình dưới

Ta thấy đó sau khi sử dụng lệnh ps thì ta củng thấy process đó đang chạy trong bảng thông tin được cung cấp.

lệnh ps này cung cấp các process quan trọng, ngoài ra còn cả tá process mặc định chạy cùng hệ thống linux của bạn.

xem mọi tiến trình trên hệ thống sử dụng các biến tiêu chuẩn:

Khi chạy các lệnh thì ta sẽ có kết quả tương tự như hình.

Cau-lenh-giam-sat-he-thng-linux-ph-bien2.jpg

Giải thích 1 chút để bạn dễ hình dung nhé :

  • PID – Process ID. Mỗi Process có 5 ký tự s. Những số này có thể hết (hết số) và bắt đầu lại, nhưng tại bất kỳ thời điểm nào, không có hơn 1 PID trong hệ thống.
Các tùy chọn đơn giản của lệnh ps:

  • -A a chọn tất cả các tiến trình ( bao gồm của tất cả người dùng )
  • -a chọn tất cả trừ phiên làm việc của người đang dùng lệnh
  • -d chọn tất cả, bỏ sót tiến trình của người đang dùng lệnh
  • -e chọn tất cả các quy trình
  • g bao gồm tất cả nhóm, ngay cả người dùng lệnh
  • -N ngược lại với sự lựa chọn ( phủ định )
  • r hạn chế đầu ra cho các tiến trình
  • T chọn tất cả các tiến trình trên đang chạy trên terminal
  • x chọn tất cả các tiến trình không bao gồm bộ điều khiển ttys
Để xem chi tiết về lệnh này xem thêm
Bạn phải đăng nhập để xem liên kết Log in or register now.


Với lệnh ps thì mình thường dùng như ntn

Mã:
#ps aux
Để xem được bao quát các tiến trình đang chạy và cả path của nó với kiểu trình bày BSD format

Để xem các tiến trình của từng user

Mã:
$ ps -fU root

or

$ ps -fu 0
RUID mặc định của user root là 0

Cau-lenh-giam-sat-he-thng-linux-ph-bien-3.jpg


Để theo dõi các tiến trình theo PID

Mã:
$ ps -fp 1491,531
Cau-lenh-giam-sat-he-thng-linux-ph-bien-xsolution.vn.jpg


Để theo dõi các tiến trình theo TTY
TTY là cái môi trường nhập xuất dữ liệu, vì linux hỗ trợ hệ thống multi-user nên cùng lúc có thể có nhiều người dùng thao tác lệnh với hệ thống.

Mã:
$ ps -ft tty1
Cau-lenh-giam-sat-he-thng-linux-ph-bien-5-xsolution.vn.jpg


Chỉ định một số thông tin ta cần xem.
Thứ tự củng sẽ đi theo thứ tự của các tùy chọn trong lệnh ta sử dụng.

Mã:
$ ps -eo pid,ppid,user,cmd
Cau-lenh-giam-sat-he-thng-linux-ph-bien-6-xsolution.vn.jpg


Cú pháp để tìm sự cố hệ thống
Nếu hệ thống của bạn chậm hoặc không hoạt động bạn có thể sử dụng 1 vài cú pháp dưới đây để troubleshoot.

Top các tiến trình chạy với cường độ CPU và RAM cao

Mã:
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
or

Mã:
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
dòng lệnh ở trên filter theo độ cao của ram, còn dòng lệnh bên dưới filter theo cpu. để ta có thể nhìn thấy rõ các process chạy

Cau-lenh-giam-sat-he-thng-linux-ph-bien-7-xsolution.vn.jpg


Ở linux thì các tiến trình không phản hồi nó sẽ có trạng thái “stress

vậy để filter được các tiến trình không phản hồi tao dùng lệnh sau :

Mã:
$ ps -A | grep -i stress
sau đó thì dùng lệnh kill để xóa nó đi

Mã:
$ kill PID
PID là cái ID của tiến trình đó khi mình xuất ra kết quả.

Để có thể xem được real time của các tiến trình đang hoạt động
Vì lệnh ps chỉ hiên thị các thông tin tĩnh, nên mình thấy có 1 cách là dùng lệnh watch là lệnh để xem đồng hồ giúp bạn cập nhật thông tin mỗi giây

Mã:
$ watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
Cau-lenh-giam-sat-he-thng-linux-ph-bien-8-xsolution.vn.jpg


Có thể tùy chọn các thông số của lệnh ps để phù hợp :)) !
 
Top