Khi quản trị máy chủ, việc nắm rõ tình trạng tài nguyên phần cứng là tối quan trọng để đảm bảo dịch vụ hoạt động ổn định. Để giám sát hệ thống Linux, chúng ta thường nghĩ ngay đến lệnh htop huyền thoại. Tuy nhiên, hệ sinh thái dòng lệnh đang phát triển rất nhanh với nhiều công cụ hiện đại viết bằng Rust. Bottom (lệnh btm) nổi lên như một Terminal System Monitor thế hệ mới, mang lại giao diện đồ họa TUI cực kỳ trực quan để giúp bạn giám sát hệ thống Linux hiệu quả.
Bottom (lệnh chạy: btm) là một công cụ giám sát tiến trình và hệ thống dạng graphical trực tiếp trong terminal. Viết bằng Rust, bottom hỗ trợ cross-platform trên Linux, macOS và Windows, lấy cảm hứng từ gtop, gotop và htop. Công cụ này mang đến trải nghiệm hiện đại hơn với giao diện TUI trực quan, widget tùy biến linh hoạt và hiệu suất vượt trội. Việc sử dụng bottom làm công cụ giám sát hệ thống Linux giúp bạn có cái nhìn tổng quan thời gian thực về máy chủ.
Bài viết này sẽ hướng dẫn bạn chi tiết từ A-Z cách cài đặt, phím tắt sử dụng lệnh btm, cách chỉnh sửa file cấu hình bottom để tối ưu hóa hiển thị, và tại sao nó là giải pháp hoàn hảo để giám sát hệ thống Linux và thay thế htop trong công việc hàng ngày của bạn.
Tại Sao Nên Dùng Bottom Để Giám Sát Hệ Thống Linux?
Nhiều sysadmin tự hỏi: “Htop đang chạy rất tốt, tại sao tôi phải mất thời gian làm quen với một công cụ mới?”. Câu trả lời nằm ở khả năng phân tích dữ liệu theo thời gian (timeline representation). Htop chỉ hiển thị các thanh bar trạng thái hiện tại. Nếu CPU tăng đột biến trong 2 giây rồi giảm xuống, bạn rất khó nhận biết nếu không nhìn màn hình đúng lúc đó. Sử dụng Bottom để giám sát hệ thống Linux sẽ giải quyết bài toán này bằng cách vẽ biểu đồ lịch sử CPU/RAM/Network chạy liên tục.
Bên cạnh đó, việc viết bằng ngôn ngữ Rust giúp lệnh btm tận dụng tối đa cơ chế an toàn bộ nhớ (memory safety) và trừu tượng hóa chi phí bằng không (zero-cost abstractions). Terminal System Monitor này khởi động nhanh gần như tức thì và tiêu tốn cực kỳ ít tài nguyên CPU máy host. Đây là yếu tố sống còn khi hệ thống đang bị quá tải và bạn cần một công cụ giám sát hệ thống Linux nhẹ nhàng để tìm ra nguyên nhân nghẽn cổ chai.
Các Tính Năng Chính Của Bottom
1. Widget Đồ Họa Real-Time
Bottom chia màn hình terminal thành các khu vực hiển thị (widgets) độc lập. Khi dùng Bottom để giám sát hệ thống Linux, bạn sẽ có các biểu đồ thời gian thực chạy mượt mà:
- CPU usage: Theo dõi mức sử dụng CPU theo thời gian thực dưới dạng đồ thị, hiển thị cả mức sử dụng trung bình (average) lẫn chi tiết từng nhân (per-core).
- RAM và Swap: Biểu đồ trực quan hóa dung lượng bộ nhớ vật lý và phân vùng swap đang sử dụng theo thời gian.
- Network I/O: Đo lưu lượng băng thông gửi (Rx) và nhận (Tx) chạy qua các card mạng của máy chủ.
Tất cả các widget đồ thị này đều hỗ trợ tính năng zoom in/out thời gian bằng phím nóng. Điều này cực kỳ hữu ích khi bạn muốn xem chi tiết biến động tài nguyên trong vòng 5 phút qua hoặc thu nhỏ để xem toàn bộ lịch sử 1 tiếng trước.
2. Widget Thông Tin Hệ Thống Tích Hợp
Không chỉ giám sát CPU/RAM, Terminal System Monitor này còn hỗ trợ đắc lực cho công việc giám sát hệ thống Linux nhờ tích hợp sẵn các cảm biến phần cứng quan trọng:
- Disk capacity/usage: Liệt kê tất cả phân vùng ổ đĩa cứng đang được mount, hiển thị dung lượng tổng và phần trạng thái đã sử dụng.
- Temperature sensors: Hiển thị nhiệt độ của CPU, GPU và các linh kiện phần cứng khác thông qua driver lm-sensors của Linux.
- Battery usage: Hiển thị dung lượng và trạng thái sạc pin (tiện lợi cho các kỹ sư lập trình chạy Ubuntu trên laptop).
3. Quản Lý Tiến Trình Nâng Cao
Widget quản lý tiến trình (processes) trong bottom cung cấp các bộ lọc nâng cao giúp việc giám sát hệ thống Linux trở nên dễ dàng:
- Sắp xếp thông minh: Dễ dàng phân loại tiến trình theo CPU%, MEM%, PID, hoặc Tên.
- Tìm kiếm nâng cao: Cho phép lọc tìm tiến trình theo regex hoặc từ khóa cụ thể.
- Tree mode: Hiển thị tiến trình theo cấu trúc cây (process tree) giúp bạn dễ dàng theo dõi các tiến trình con (child processes) được sinh ra từ tiến trình cha.
- Gửi tín hiệu kết thúc: Hỗ trợ gửi các tín hiệu như SIGTERM, SIGKILL trực tiếp trong giao diện TUI để tắt tiến trình bị treo.
4. Khả Năng Tùy Biến Giao Diện Mạnh Mẽ
Điểm vượt trội của Bottom khi so sánh với htop là khả năng thay đổi cấu trúc giao diện (layout). Bạn có thể chỉnh sửa file cấu hình bottom để thêm, bớt hoặc sắp xếp lại các widget theo hàng và cột tùy ý. Bên cạnh đó, bạn cũng có thể thay đổi màu sắc của biểu đồ, đường viền bằng cách import các Gruvbox, Nord, hay Solarized themes có sẵn.
5. Basic Mode Kiểu Htop và Khả Năng Phóng To Widget
Nếu bạn thích một giao diện tối giản để tiết kiệm diện tích màn hình terminal khi giám sát hệ thống Linux, bottom hỗ trợ chạy ở **Basic Mode**. Bạn chỉ cần khởi chạy với flag --basic, giao diện đồ thị sẽ biến mất, chỉ giữ lại thanh hiển thị CPU/RAM đơn giản và danh sách tiến trình.
btm --basic
Ngoài ra, khi đang ở chế độ bình thường, bạn có thể chọn một widget bất kỳ và nhấn phím e. Widget đó sẽ được phóng to chiếm trọn màn hình terminal để bạn quan sát kỹ hơn. Nhấn e một lần nữa để đưa giao diện quay lại cấu trúc dashboard ban đầu.
So Sánh Chi Tiết: Bottom vs Htop
Để thấy rõ tại sao Bottom là một lựa chọn tuyệt vời để thay thế htop trong các tác vụ giám sát hệ thống Linux chuyên sâu, hãy xem qua bảng so sánh dưới đây:
| Tiêu chí | Htop | Bottom (btm) |
|---|---|---|
| Ngôn ngữ lập trình | C | Rust (An toàn bộ nhớ, tối ưu tốt) |
| Hiển thị đồ thị thời gian | Không (chỉ hiển thị mức hiện tại) | Có (Biểu đồ lịch sử, hỗ trợ zoom) |
| Cấu hình Layout | Cấu hình cứng (chỉ đổi được vị trí thanh header) | Tự do thiết lập vị trí widget qua TOML |
| Giám sát mạng (Network) | Không (cần cài thêm tool ngoài) | Có sẵn biểu đồ Rx/Tx băng thông mạng |
| Hỗ trợ đa nền tảng | Linux, macOS (Windows hỗ trợ kém) | Linux, macOS, Windows (Hỗ trợ chính thức) |
| Phím tắt điều hướng | Bàn phím cơ bản | Bàn phím đầy đủ + hỗ trợ chuột cuộn/click |
Hướng Dẫn Cài Đặt Bottom Trên Các Bản Phân Phối Linux
Để bắt đầu sử dụng công cụ này làm Terminal System Monitor chính để giám sát hệ thống Linux, bạn có thể cài đặt thông qua trình quản lý gói của từng hệ điều hành. Việc cài đặt đúng cách giúp quy trình giám sát hệ thống Linux diễn ra trơn tru:
Ubuntu / Debian
Đối với hệ điều hành Ubuntu, cách nhanh nhất là tải gói cài đặt .deb trực tiếp từ trang phát hành của GitHub:
# Dành cho kiến trúc CPU x86-64
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_amd64.deb
sudo dpkg -i bottom_0.9.6_amd64.deb
# Dành cho kiến trúc CPU ARM64
curl -LO https://github.com/ClementTsang/bottom/releases/download/0.9.6/bottom_0.9.6_arm64.deb
sudo dpkg -i bottom_0.9.6_arm64.deb
Arch Linux
Gói phần mềm đã có sẵn trong kho lưu trữ chính thức của Arch Linux, bạn cài đặt bằng lệnh:
sudo pacman -S bottom
Fedora / CentOS / RHEL
Với các bản phân phối của RedHat, bạn có thể bật kho lưu trữ COPR và cài đặt:
sudo dnf copr enable atim/bottom -y
sudo dnf install bottom
Cài đặt trên macOS và Windows
Bên cạnh việc giám sát hệ thống Linux, bạn cũng có thể chạy công cụ này trên các hệ điều hành khác bằng lệnh:
# Trên macOS sử dụng Homebrew
brew install bottom
# Trên Windows sử dụng Winget
winget install bottom
# Sử dụng công cụ quản lý gói Scoop
scoop install bottom
Hướng Dẫn Sử Dụng Các Phím Tắt Và Lệnh btm
Sau khi cài đặt xong, bạn khởi chạy công cụ bằng cách gõ lệnh btm trong terminal của mình:
btm
Để tối ưu hóa quá trình giám sát hệ thống Linux, việc thành thạo các phím tắt điều hướng trong giao diện TUI sẽ giúp bạn làm việc nhanh hơn rất nhiều. Dưới đây là bảng tổng hợp các phím tắt quan trọng:
| Phím tắt | Chức năng hành động |
|---|---|
q hoặc Ctrl + C | Thoát ứng dụng ngay lập tức |
Esc | Đóng các cửa sổ tìm kiếm hoặc thoát chế độ mở rộng Expanded |
e | Phóng to (Expand) widget hiện tại đang được bôi đen |
f | Đóng băng (Freeze) dữ liệu cập nhật tạm thời để xem thông tin tĩnh |
Tab hoặc Shift + Tab | Di chuyển vùng chọn giữa các widget liền kề |
Ctrl + Arrow (Phím mũi tên) | Di chuyển vùng bôi đen sang các widget theo hướng tương ứng |
/ | Bật chế độ tìm kiếm tiến trình trong widget Process |
? | Hiển thị bảng trợ giúp hướng dẫn phím tắt ngay trong giao diện TUI |
Cấu Hình Bottom Bằng File TOML Chuyên Sâu
Ở lần khởi chạy đầu tiên, Bottom sẽ tự động sinh ra một file cấu hình mặc định ở định dạng TOML. Để cấu hình giám sát hệ thống Linux theo sở thích, bạn hãy chỉnh sửa file này. Cấu hình file TOML phù hợp giúp tùy biến trải nghiệm giám sát hệ thống Linux tốt hơn. Đường dẫn file cấu hình mặc định trên Linux nằm tại: ~/.config/bottom/bottom.toml.
Dưới đây là một ví dụ về cách tùy biến file cấu hình bottom để thay đổi tốc độ quét tài nguyên (default rate) và thiết lập Gruvbox theme:
# Cấu hình tần suất cập nhật dữ liệu (đơn vị: mili giây)
[flags]
rate = "1000" # Cập nhật dữ liệu mỗi 1 giây thay vị 1.5 giây mặc định
# Cấu hình màu sắc giao diện theo theme Gruvbox
[colors]
table_header_color = "#fe8019"
border_color = "#ebdbb2"
selected_border_color = "#fabd2f"
text_color = "#ebdbb2"
graph_color = "#8ec07c"
Bên cạnh việc đổi màu sắc, bạn cũng có thể thiết lập layout tùy biến trong file cấu hình bottom bằng cách định nghĩa các block [[row]] và [[row.child]]. Điều này giúp bạn gom nhóm các widget quan trọng (như CPU và RAM) lên hàng đầu tiên, và đẩy các thông tin ít quan trọng hơn xuống chân trang.
So Sánh Sâu: Bottom vs Glances vs btop
Bên cạnh cuộc đối đầu kinh điển để thay thế htop, trong thế giới Linux còn có 2 đối thủ nặng ký khác giúp bạn giám sát hệ thống Linux là btop và Glances. Để giúp bạn lựa chọn đúng công cụ để giám sát hệ thống Linux, chúng ta hãy so sánh 3 công cụ này:
| Tiêu chí | Bottom (btm) | btop | Glances |
|---|---|---|---|
| Ngôn ngữ | Rust | C++ | Python (Khá nặng khi chạy) |
| Đồ họa giao diện | Minimalist & Hiện đại | Cực kỳ sặc sỡ, nhiều hiệu ứng | Dạng văn bản tĩnh xếp gọn |
| Mức tiêu thụ CPU/RAM | Cực thấp (~5-10MB RAM) | Thấp (~10-15MB RAM) | Cao (có thể lên tới 50MB RAM) |
| Xuất dữ liệu WMI/Web | Không (chỉ chạy trong terminal) | Không | Có (Hỗ trợ Web Dashboard, API xuất dữ liệu) |
| Mục đích phù hợp nhất | Giám sát server & máy trạm đa nền tảng | Máy trạm cá nhân (Workstation) đẹp mắt | Giám sát máy chủ từ xa qua trình duyệt Web |
Thực tế thì, nếu bạn đang tìm kiếm một công cụ có giao diện trực quan, nhẹ nhàng để treo liên tục trên màn hình SSH máy chủ, Bottom là lựa chọn hàng đầu. Nếu bạn thích một giao diện hầm hố, màu mè hoa mỹ cho máy cá nhân, btop sẽ làm bạn hài lòng. Còn nếu bạn cần giám sát đĩa và xuất các báo cáo dạng JSON/HTML qua mạng, Glances sẽ phục vụ tốt nhất.
Troubleshooting & Mẹo Sử Dụng Bottom Tối Ưu
Trong quá trình sử dụng lệnh btm để giám sát hệ thống Linux, đôi khi bạn có thể gặp một vài lỗi nhỏ liên quan đến phần cứng hoặc hiển thị. Áp dụng các mẹo này giúp tối ưu hóa hiệu năng giám sát hệ thống Linux trên server. Dưới đây là cách giải quyết cụ thể:
1. Widget nhiệt độ (Temperature) báo trống không có dữ liệu
Lỗi này xảy ra khi máy chủ Linux của bạn thiếu driver đọc thông tin từ các cảm biến vật lý trên bo mạch chủ. Hãy khắc phục bằng cách cài đặt gói lm-sensors và chạy lệnh dò tìm cảm biến phần cứng:
sudo apt install lm-sensors -y
sudo sensors-detect
Lệnh quét sensors-detect sẽ hỏi bạn một số câu hỏi xác nhận cấu hình driver, hãy nhấn Enter để chọn mặc định Yes cho tất cả. Sau khi khởi động lại dịch vụ sensors, khởi chạy lại bottom và bạn sẽ thấy biểu đồ nhiệt độ xuất hiện.
2. Không thể xem thông tin đĩa cứng hoặc tiến trình khi chạy trong Docker container
Nếu bạn muốn chạy bottom bên trong một container Docker để giám sát hệ thống Linux của máy host, container cần được cấp quyền truy cập vào các file hệ thống /proc và /sys của host. Hãy khởi chạy container với các tham số mount volume tương ứng:
docker run --rm -it --pid=host --net=host -v /:/host:ro -e HOST_PROC=/host/proc clementtsang/bottom
Tham số --pid=host giúp Terminal System Monitor đọc được toàn bộ danh sách tiến trình đang hoạt động ở máy host phía ngoài container. Cách làm này giúp bạn giám sát hệ thống Linux mà không cần cài đặt trực tiếp vào môi trường máy host.
3. Lệnh btm ngốn quá nhiều CPU trên các máy chủ cấu hình yếu
Mặc dù được viết bằng Rust, nếu bạn đặt tần suất cập nhật dữ liệu quá nhanh (ví dụ rate = 100 tức là 0.1 giây một lần), bottom sẽ phải liên tục quét hệ thống file /proc để lấy metric, gây quá tải CPU cho máy chủ. Mặc dù được viết bằng Rust, nếu bạn đặt tần suất cập nhật dữ liệu quá nhanh, bottom sẽ tiêu tốn nhiều tài nguyên hơn khi giám sát hệ thống Linux. Hãy điều chỉnh tham số rate lên mức 2000 hoặc 3000 (2 đến 3 giây một lần) trong file cấu hình bottom để giảm thiểu tối đa tài nguyên sử dụng.
Kết Luận
Tóm lại, Bottom là một trong những công cụ giám sát hệ thống Linux hiện đại, trực quan và mạnh mẽ nhất hiện nay. Viết bằng Rust nên nhanh và nhẹ, giao diện TUI đẹp với biểu đồ thời gian thực, tùy biến mạnh mẽ qua config file TOML, và chạy được trên cả Linux, macOS lẫn Windows. Nếu bạn đang tìm một công cụ Terminal System Monitor xuất sắc để thay thế htop — bottom chính là lựa chọn đáng thử của bạn.
Hãy xem thêm các bài viết hữu ích khác về quản lý máy chủ của mình như cách tối ưu hóa thời gian phản hồi TTFB của server để cải thiện tốc độ mạng hoặc thiết lửa ứng dụng CrowdSec WAF bảo vệ máy chủ để bảo vệ an toàn cho hệ thống giám sát của bạn.


