Chào bạn! Nếu bạn là một sysadmin, developer, hay đơn giản là người dùng Linux muốn hiểu rõ “sức khỏe” hệ thống của mình, thì bài viết này là dành cho bạn. Việc giám sát hiệu năng Linux không chỉ giúp bạn phát hiện sớm các vấn đề tiềm ẩn mà còn là chìa khóa để tối ưu hóa tài nguyên và đảm bảo hệ thống hoạt động trơn tru.
Trong môi trường máy chủ, việc biết cách kiểm tra tài nguyên Linux như CPU, RAM, ổ đĩa và mạng là vô cùng quan trọng. May mắn thay, Linux cung cấp một bộ sưu tập các lệnh Linux giám sát hệ thống mạnh mẽ, giúp chúng ta có cái nhìn sâu sắc về mọi ngóc ngách của hệ thống. Hãy cùng khám phá những công cụ giám sát Linux thiết yếu này nhé!
1. Giám Sát CPU và Tải Hệ Thống (CPU & Load Average)
CPU là “bộ não” của hệ thống. Việc theo dõi mức độ sử dụng CPU và tải hệ thống giúp chúng ta biết liệu hệ thống có đang bị quá tải hay không.
top / htop – Giám sát thời gian thực
Đây là hai công cụ phổ biến nhất để xem các tiến trình đang chạy và mức độ sử dụng tài nguyên theo thời gian thực. top có sẵn trên hầu hết các hệ thống Linux, trong khi htop là phiên bản nâng cao với giao diện thân thiện và nhiều tính năng hơn (thường cần cài đặt thêm).
top: Hiển thị danh sách các tiến trình đang chạy, mức sử dụng CPU, RAM, Swap, và tải hệ thống.htop: Cung cấp giao diện màu sắc, dễ đọc, cho phép cuộn ngang/dọc, tìm kiếm, và kill tiến trình một cách trực quan hơn.
Cách sử dụng:
top
htop # Nếu đã cài đặt
mpstat – Thống kê Bộ xử lý
Lệnh mpstat (từ gói sysstat) cung cấp thông tin chi tiết về hiệu suất của từng CPU hoặc nhân CPU, rất hữu ích cho các hệ thống đa nhân.
mpstat -P ALL 1: Hiển thị thống kê cho tất cả các CPU mỗi giây.
Ví dụ:
mpstat -P ALL 1 5
Lệnh này sẽ hiển thị thống kê cho tất cả các CPU, mỗi giây một lần, trong tổng số 5 lần.
uptime – Thời gian hoạt động và Tải hệ thống
Lệnh uptime nhanh chóng cho bạn biết hệ thống đã hoạt động bao lâu và tải hệ thống (load average) trong 1, 5, và 15 phút gần nhất.
Ví dụ:
uptime
Output sẽ trông như thế này:
15:30:00 up 1 day, 5:20, 1 user, load average: 0.15, 0.20, 0.18
Các con số 0.15, 0.20, 0.18 là tải trung bình của hệ thống. Nếu các số này lớn hơn số nhân CPU của bạn, hệ thống có thể đang bị quá tải.
2. Giám Sát Bộ nhớ RAM (Memory)
Bộ nhớ RAM là yếu tố quan trọng ảnh hưởng đến tốc độ của ứng dụng. Giám sát RAM giúp bạn phát hiện tình trạng thiếu bộ nhớ hoặc rò rỉ bộ nhớ.
free – Thông tin Bộ nhớ
Lệnh free hiển thị tổng dung lượng RAM, RAM đã sử dụng, RAM trống, bộ nhớ đệm (buffers), bộ nhớ cache và Swap.
free -h: Hiển thị thông tin bộ nhớ dưới dạng dễ đọc (GB, MB).
Ví dụ:
free -h
Output mẫu:
total used free shared buff/cache available
Mem: 7.7G 2.1G 3.2G 200M 2.4G 5.1G
Swap: 2.0G 0B 2.0G
vmstat – Thống kê Bộ nhớ ảo
vmstat (Virtual Memory Statistics) cung cấp thông tin chi tiết về bộ nhớ, tiến trình, I/O, paging và hoạt động CPU.
vmstat 1: Cập nhật thống kê mỗi giây.
Ví dụ:
vmstat 1 5
Lệnh này sẽ hiển thị thống kê 5 lần, mỗi lần cách nhau 1 giây.
3. Giám Sát Ổ đĩa và I/O (Disk & I/O)
Tốc độ và dung lượng ổ đĩa là yếu tố then chốt, đặc biệt đối với các ứng dụng có nhiều hoạt động đọc/ghi dữ liệu.
df – Dung lượng Ổ đĩa trống
Lệnh df (disk free) hiển thị thông tin về dung lượng ổ đĩa đã sử dụng và còn trống trên các hệ thống tệp đã mount.
df -h: Hiển thị dung lượng dưới dạng dễ đọc (GB, MB).
Ví dụ:
df -h
du – Dung lượng Thư mục/Tệp
Lệnh du (disk usage) ước tính dung lượng tệp hoặc thư mục đang sử dụng. Rất hữu ích khi bạn cần tìm ra thư mục nào đang chiếm nhiều không gian nhất.
du -sh /path/to/directory: Hiển thị tổng dung lượng của một thư mục dưới dạng dễ đọc.du -sh *: Hiển thị dung lượng của tất cả các tệp và thư mục trong thư mục hiện tại.
Ví dụ:
du -sh /var/log
iostat – Thống kê I/O
iostat (từ gói sysstat) cung cấp thông tin chi tiết về hoạt động vào/ra (I/O) của các thiết bị lưu trữ và CPU.
iostat -x 1: Hiển thị thống kê mở rộng về I/O mỗi giây.
Ví dụ:
iostat -x 1 5
Lệnh này giúp bạn xác định liệu ổ đĩa có đang là nút thắt cổ chai (bottleneck) của hệ thống hay không.
4. Giám Sát Mạng (Network)
Kết nối mạng ổn định và hiệu suất cao là cực kỳ quan trọng đối với mọi máy chủ. Các lệnh sau giúp bạn kiểm tra trạng thái mạng.
netstat / ss – Kết nối Mạng
Cả hai lệnh này đều hiển thị các kết nối mạng đang hoạt động, bảng định tuyến, thống kê giao diện, v.v. ss được coi là phiên bản hiện đại và nhanh hơn netstat.
netstat -tulnp: Liệt kê tất cả các cổng đang lắng nghe (listening) và các kết nối TCP/UDP, kèm theo PID của tiến trình.ss -tulnp: Tương tựnetstat, nhưng thường nhanh hơn và cung cấp nhiều thông tin hơn.
Ví dụ:
ss -tulnp
ifconfig / ip – Cấu hình Giao diện Mạng
ifconfig là lệnh truyền thống để cấu hình và xem trạng thái các giao diện mạng. ip là công cụ hiện đại hơn và mạnh mẽ hơn, được khuyến nghị sử dụng trên các bản phân phối Linux mới.
ifconfig: Hiển thị thông tin về tất cả các giao diện mạng.ip a: Hiển thị địa chỉ IP và trạng thái của tất cả các giao diện.ip -s link show eth0: Hiển thị thống kê chi tiết về gói tin cho giao diệneth0.
Ví dụ:
ip a
ip -s link show eth0
nload / bmon – Giám sát Lưu lượng Mạng thời gian thực
Nếu bạn muốn xem lưu lượng mạng theo thời gian thực với giao diện đồ họa ASCII, nload hoặc bmon là lựa chọn tuyệt vời (cần cài đặt).
Ví dụ:
nload
bmon
5. Giám Sát Tiến trình (Processes)
Quản lý và giám sát các tiến trình đang chạy là cốt lõi của việc quản trị hệ thống.
ps – Ảnh chụp nhanh Tiến trình
Lệnh ps (process status) hiển thị một “ảnh chụp nhanh” các tiến trình đang chạy tại thời điểm bạn thực hiện lệnh.
ps aux: Hiển thị tất cả các tiến trình của tất cả người dùng, bao gồm các tiến trình không có terminal (a), hiển thị người dùng/nhóm sở hữu (u), và các tiến trình không liên quan đến terminal (x).ps -ef: Tương tựps aux, hiển thị đầy đủ thông tin về tiến trình.ps aux | grep nginx: Tìm kiếm tiến trìnhnginx.
Ví dụ:
ps aux | head -n 5
lsof – Liệt kê Tệp đang mở
lsof (list open files) là một công cụ cực kỳ mạnh mẽ để xem tất cả các tệp đang mở bởi các tiến trình. Trong Linux, “mọi thứ là một tệp”, bao gồm cả socket mạng, thư viện, và thiết bị.
lsof -i :80: Liệt kê các tiến trình đang sử dụng cổng 80.lsof /var/log/syslog: Xem tiến trình nào đang mở tệpsyslog.lsof -u username: Liệt kê tất cả các tệp đang mở bởi một người dùng cụ thể.
Ví dụ:
lsof -i :22
Lệnh này sẽ cho biết tiến trình nào đang sử dụng cổng SSH (22).
systemctl – Quản lý Dịch vụ
systemctl là công cụ chính để quản lý các dịch vụ (services) trên các hệ thống sử dụng Systemd (hầu hết các bản phân phối Linux hiện đại).
systemctl status service_name: Kiểm tra trạng thái của một dịch vụ.systemctl list-units --type=service --state=running: Liệt kê tất cả các dịch vụ đang chạy.
Ví dụ:
systemctl status nginx
6. Các Công cụ Giám sát Nâng cao và Đồ họa
Mặc dù các lệnh dòng lệnh rất mạnh mẽ, đối với việc giám sát liên tục và trực quan hóa dữ liệu, bạn có thể cần đến các công cụ nâng cao hơn:
- Grafana & Prometheus: Bộ đôi phổ biến cho việc thu thập, lưu trữ và trực quan hóa dữ liệu hiệu năng hệ thống theo thời gian.
- Nagios / Zabbix: Các hệ thống giám sát toàn diện, có khả năng cảnh báo và quản lý cấu hình.
- Webmin: Giao diện quản trị web cho Linux, bao gồm nhiều công cụ giám sát.
Hy vọng rằng hướng dẫn chi tiết về những lệnh Linux giám sát hệ thống và hiệu năng này đã trang bị cho bạn những công cụ cần thiết để làm chủ hệ thống của mình. Việc thành thạo các lệnh Linux kiểm tra tài nguyên này sẽ giúp bạn dễ dàng chẩn đoán vấn đề, tối ưu hóa hiệu suất và duy trì một môi trường Linux ổn định.
Đừng ngần ngại thực hành các lệnh này trên hệ thống của bạn. Hãy nhớ rằng, việc giám sát hiệu năng Linux là một quá trình liên tục, và việc chủ động sẽ luôn tốt hơn là phản ứng khi sự cố đã xảy ra!






