Lệnh htop là một trình theo dõi hệ thống tương tác và trực quan hơn rất nhiều so với lệnh top truyền thống trên Linux. Công cụ này cung cấp một cái nhìn toàn diện về tài nguyên CPU, RAM và danh sách tiến trình đang chạy theo thời gian thực với màu sắc rõ ràng. Trong bài viết này, mình sẽ cùng bạn tìm hiểu rõ về cách sử dụng lệnh htop để kiểm tra và xác định các tiến trình gây tiêu tốn bộ nhớ nhất.
Những điểm chính
- Khái niệm lệnh htop: Hiểu rõ khái niệm và chức năng của
htoplà công cụ giám sát hệ thống tương tác, nâng cấp từtop. - Tính năng nổi bật: Nắm được các ưu điểm vượt trội như giao diện màu trực quan, hỗ trợ chuột, thao tác dễ dàng và khả năng tùy biến cao.
- Cách đọc giao diện: Biết cách đọc hiểu 3 phần chính của giao diện
htoplà tiêu đề, thông tin hệ thống và danh sách tiến trình. - Hướng dẫn sử dụng: Thành thạo quy trình 3 bước để cài đặt, khởi chạy, sắp xếp và phân tích các tiến trình tiêu tốn bộ nhớ.
- Mẹo sử dụng hiệu quả: Học các kỹ thuật giám sát nâng cao như xem dạng cây, lọc theo người dùng và thay đổi độ ưu tiên.
- Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các vấn đề thực tế như cài đặt trên hệ thống khác, giám sát container Docker và tùy chỉnh cột hiển thị.
Lệnh htop là gì?
htop là một công cụ giám sát hệ thống tương tác và quản lý tiến trình chạy trên hệ điều hành Linux. Đây được xem là phiên bản nâng cấp của lệnh top truyền thống, với ưu điểm là giao diện màu trực quan, hỗ trợ cuộn trang và cho phép người dùng tương tác bằng chuột hoặc bàn phím để quản lý các tác vụ.

Tính năng nổi bật của htop
So với các công cụ giám sát dòng lệnh khác, htop được ưa chuộng nhờ những ưu điểm vượt trội:
- Hiển thị trực quan: htop sử dụng màu sắc để phân loại thông tin, giúp người dùng dễ dàng nắm bắt tình trạng hệ thống. Mức sử dụng của từng lõi CPU, bộ nhớ RAM và Swap được biểu diễn dưới dạng các thanh trạng thái đồ họa dễ hiểu.
- Tương tác thân thiện: Người dùng có thể cuộn danh sách tiến trình theo chiều dọc và chiều ngang để xem tất cả các tiến trình và toàn bộ dòng lệnh của chúng mà không bị cắt bớt.
- Hỗ trợ chuột: Có thể sử dụng chuột để chọn và tương tác với các tiến trình, điều mà top không hỗ trợ.
- Thao tác dễ dàng: Các thao tác như dừng (kill) hoặc thay đổi độ ưu tiên của tiến trình có thể được thực hiện dễ dàng thông qua các phím chức năng (F1-F10) được chú thích rõ ràng ở cuối màn hình
- Chế độ cây: htop cho phép xem các tiến trình dưới dạng cây, hiển thị mối quan hệ cha-con và cho phép thực hiện hành động trên nhiều tiến trình cùng lúc.
- Khả năng tùy biến cao: Bạn có thể nhấn F2 (Setup) để thay đổi màu sắc, thêm/bớt các cột thông tin hoặc thay đổi biểu đồ hiển thị tài nguyên.

Cách đọc giao diện htop
Giao diện của htop được chia thành 3 phần chính, cung cấp cái nhìn tổng quan về tình trạng sức khỏe của hệ thống:

1. Phần tiêu đề
Khu vực này hiển thị các biểu đồ thanh ngang và số liệu thống kê tóm tắt:
- CPU: Hiển thị mức độ sử dụng của từng nhân CPU (được đánh số 1, 2, 3…). Các màu sắc khác nhau đại diện cho các loại quy trình (ví dụ: màu xanh lá là quy trình người dùng, màu đỏ là quy trình hệ thống).
- Mem (Memory): Biểu thị dung lượng RAM đang được sử dụng.
- Swp (Swap): Biểu thị dung lượng bộ nhớ ảo (Swap) đang được sử dụng.
2. Phần thông tin hệ thống
Nằm ngay bên cạnh các thanh biểu đồ, khu vực này cung cấp các chỉ số:
- Tasks: Tổng số tiến trình đang chạy.
- Load average: Chỉ số tải trung bình của hệ thống trong 1 phút, 5 phút và 15 phút gần nhất.
- Uptime: Thời gian hệ thống đã hoạt động liên tục kể từ lần khởi động cuối cùng.
3. Phần danh sách tiến trình
Đây là phần quan trọng nhất, liệt kê chi tiết các tiến trình đang hoạt động với các cột thông số:
- PID: Mã định danh duy nhất của tiến trình.
- USER: Tên người dùng sở hữu tiến trình.
- PRI/NI: Độ ưu tiên của tiến trình.
- VIRT/RES/SHR: Các thông số liên quan đến bộ nhớ (Bộ nhớ ảo, Bộ nhớ thực, Bộ nhớ chia sẻ).
- CPU%: Phần trăm CPU mà tiến trình đang chiếm dụng.
- MEM%: Phần trăm RAM mà tiến trình đang chiếm dụng.
- TIME+: Tổng thời gian CPU đã dành để xử lý tiến trình này.
- Command: Tên lệnh hoặc đường dẫn của chương trình đang chạy.
4. Các phím tắt điều hướng và quản lý nhanh
Sử dụng các phím tắt giúp bạn xử lý các tiến trình tiêu tốn tài nguyên một cách chuyên nghiệp:
- F1 (Help): Hiển thị bảng hướng dẫn các phím tắt và chức năng.
- F2 (Setup): Mở menu cài đặt để tùy chỉnh giao diện, màu sắc và các cột hiển thị.
- F3 (Search): Cho phép tìm kiếm một tiến trình cụ thể theo tên.
- F4 (Filter): Lọc danh sách tiến trình theo tên (chỉ hiển thị các tiến trình khớp với từ khóa).
- F5 (Tree): Chuyển đổi chế độ xem danh sách sang dạng cây phân cấp (Tree view), giúp nhìn rõ mối quan hệ cha-con giữa các tiến trình.
- F6 (Sort): Sắp xếp danh sách tiến trình theo tiêu chí cụ thể (ví dụ: sắp xếp theo %CPU hoặc %MEM cao nhất).
- F9 (Kill): Gửi tín hiệu để kết thúc (kill) một tiến trình đang được chọn.
- F10 (Quit): Thoát khỏi giao diện htop.
Cách dùng htop để tìm Process tốn bộ nhớ nhất
Bước 1: Cài đặt htop
htop không có sẵn trên hệ thống nên bạn cần chạy các lệnh sau để bắt đầu cài đặt:
- Trên Debian/Ubuntu:
sudo apt-get install htop- Trên CentOS/RHEL/Fedora:
sudo yum install htopBước 2: Khởi chạy và sắp xếp
Bạn mở Terminal và gõ lệnh:
htop
htop cung cấp nhiều cách tiện lợi để sắp xếp theo bộ nhớ:
- Dùng phím F6: Nhấn
F6sẽ mở ra một bảng chọn ở bên trái, dùng mũi tên để chọnMEM%hoặcRESrồi nhấn Enter. - Dùng chuột: Bạn click vào tiêu đề cột
MEM%. - Dùng phím tắt: Tương tự như
top, bạn nhấnShift + M.

Bước 3: Phân tích và hành động
Khi bạn đã xác định được process tiêu tốn nhiều RAM, ví dụ như java, mysqld, hay một script python, đây là các bước xử lý:
- Điều tra: Bạn kiểm tra log của ứng dụng đó để tìm nguyên nhân, có thể đã xảy ra tình trạng rò rỉ bộ nhớ khiến ứng dụng liên tục chiếm thêm RAM mà không giải phóng.
- Khởi động lại: Bạn hãy thử khởi động lại dịch vụ để giải phóng bộ nhớ.
sudo systemctl restart nginx # Hoặc systemctl restart apache2, mysql...- Dừng tiến trình khi cần thiết: Nếu dịch vụ không phản hồi, bạn có thể dừng tiến trình khi cần thiết. Bạn dùng các phím mũi tên để chọn process, sau đó nhấn F9 (Kill), htop sẽ cho bạn chọn một tín hiệu:
15 SIGTERM: Yêu cầu tiến trình dừng (nên thử trước).9 SIGKILL: Buộc tiến trình dừng ngay lập tức (dùng khiSIGTERMkhông hiệu quả).
Mẹo sử dụng htop để giám sát hiệu quả
Để tối ưu hóa việc giám sát, bạn có thể áp dụng các kỹ thuật sau:
- Quản lý các tiến trình liên quan: Sử dụng chế độ xem dạng cây (F5) để xem tất cả các luồng (thread) hoặc tiến trình con được sinh ra từ một ứng dụng chính, giúp việc tắt (kill) ứng dụng triệt để hơn.
- Lọc theo người dùng cụ thể: Nhấn phím u để chọn xem các tiến trình chỉ thuộc về một User nhất định (ví dụ: root, www-data).
- Thay đổi độ ưu tiên: Sử dụng phím F7 (tăng ưu tiên) hoặc F8 (giảm ưu tiên) để điều phối tài nguyên cho các tác vụ quan trọng.
- Tùy chỉnh cột hiển thị: Nhấn S (Setup), chọn Columns để thêm hoặc bớt các thông số hiển thị theo nhu cầu theo dõi riêng của bạn.

Câu hỏi thường gặp
Làm thế nào để cài đặt htop trên các hệ điều hành không sử dụng apt hay yum?
Trên các hệ điều hành không hỗ trợ apt hoặc yum (ví dụ như Alpine Linux), bạn có thể dùng lệnh apk add htop hoặc tải về mã nguồn từ trang htop.github.io, sau đó biên dịch trực tiếp bằng cách sử dụng các công cụ build như make và gcc.
Có thể sử dụng top hoặc htop để giám sát tài nguyên của các container Docker không?
Bạn hoàn toàn có thể dùng top và htop để kiểm tra tài nguyên trên host chứa container. Tuy nhiên, để giám sát chi tiết các process bên trong từng container Docker, bạn nên đăng nhập vào container bằng cách sử dụng lệnh docker exec -it bash rồi chạy top/htop.
Có thể thay đổi các cột hiển thị trong top và htop cho mục đích tùy biến không?
– Bạn có thể thay đổi các cột hiển thị trong htop bằng phím F2 (Setup) rồi vào mục Columns, tick hoặc bỏ tick các trường cần thiết.
– Đối với top, bạn dùng lệnh . (dấu chấm) để mở menu sắp xếp cột hoặc chỉnh sửa thông qua shortkey có sẵn.
Sử dụng htop giúp việc kiểm soát tài nguyên bộ nhớ trở nên đơn giản và chi tiết hơn so với các lệnh cơ bản. Bạn có thể dễ dàng phát hiện và xử lý những tiến trình gây chậm máy thông qua giao diện tương tác này. Nếu bạn muốn tìm hiểu thêm về các câu lệnh quản trị hệ thống khác, hãy tham khảo các bài viết dưới đây:




