atop là một công cụ giám sát hiệu suất toàn màn hình cung cấp báo cáo chi tiết về tất cả các tiến trình hệ thống, bao gồm cả những tiến trình đã kết thúc. Nó thực hiện việc này bằng cách liên tục ghi nhật ký hoạt động hệ thống theo khoảng thời gian đều đặn, lưu trữ thông tin đó để sử dụng sau này.
Những nhật ký này có thể được sử dụng cho nhiều mục đích như phân tích hệ thống, điều chỉnh hiệu suất, xác định nút cổ chai, gỡ lỗi các vấn đề, hoặc truy tìm nguyên nhân của một quá tải bất ngờ.
Khác với các công cụ truyền thống như top hoặc htop, chỉ hiển thị dữ liệu hệ thống trực tiếp, atop cho bạn khả năng nhìn lại quá khứ và kiểm tra chính xác những gì đã xảy ra trong bất kỳ khoảng thời gian đã ghi nhật ký nào, điều này khiến nó đặc biệt có giá trị cho các quản trị viên hệ thống để giữ cho các máy chủ chạy trơn tru.
Trong bài viết này, chúng tôi sẽ đề cập đến những gì atop cung cấp, cách cài đặt nó trên các bản phân phối Linux phổ biến, và cách sử dụng nó hiệu quả để giám sát và phân tích lịch sử hiệu suất của hệ thống của bạn.
Atop là gì?
atop là một trình giám sát hệ thống và tiến trình toàn màn hình cho Linux, được thiết kế để báo cáo hoạt động toàn hệ thống và trên mỗi tiến trình, bao gồm:
- Xem tất cả các tiến trình đang chạy và đã hoàn thành.
- Giám sát CPU, bộ nhớ, đĩa và sử dụng mạng trên mỗi tiến trình.
- Ghi nhật ký tất cả hoạt động trong các tệp nhị phân để phân tích sau.
- Phát hiện tiến trình zombie và tiến trình mồ côi (orphan).
- Hiển thị việc sử dụng tài nguyên cấp luồng (thread-level).
- Giám sát hoạt động theo từng người dùng và từng chương trình.
- Hiển thị áp lực trì trệ (PSI) cho CPU/bộ nhớ/đĩa trong các kernel hiện đại.
- Hỗ trợ cgroup v2, hoàn hảo cho môi trường container hóa.
- Tích hợp tùy chọn với Netatop cho thống kê mạng trên mỗi tiến trình.
Và điều khiến atop nổi bật: nó có thể ghi nhật ký tất cả hoạt động này vào đĩa theo các khoảng thời gian đều đặn (mặc định là mỗi 10 phút). Sau đó, bạn có thể phát lại bất kỳ phần nào của lịch sử hệ thống và đào sâu vào những gì đã xảy ra.
Đây là một lợi thế lớn khi bạn cần gỡ lỗi các sự cố ngẫu nhiên, truy tìm việc lạm dụng tài nguyên, hoặc giám sát sử dụng theo thời gian, đặc biệt đối với các máy chủ headless hoặc hệ thống production.
Cài đặt Công cụ Giám sát Atop trên Linux
atop có sẵn trong hầu hết các kho lưu trữ bản phân phối Linux, bạn có thể cài đặt nó bằng trình quản lý gói của hệ thống hoặc biên dịch từ mã nguồn để có phiên bản mới nhất.
Trên RHEL/CentOS/Fedora
Trước tiên, bạn cần kích hoạt kho epel trên các bản phân phối dựa trên RHEL để cài đặt công cụ giám sát atop.
sudo dnf install epel-release
Sau khi đã kích hoạt kho epel, bạn có thể đơn giản sử dụng trình quản lý gói dnf để cài đặt gói atop như sau.
sudo dnf install atop
Trên Debian/Ubuntu
Trên các bản phân phối dựa trên Debian, atop có thể được cài đặt từ kho mặc định bằng lệnh apt.
sudo apt-get install atop
Trên Arch Linux / Manjaro
Nếu bạn đang sử dụng một bản phân phối rolling-release như Arch hoặc các biến thể của nó, cài đặt atop chỉ cần một lệnh:
sudo pacman -S atop
Cài đặt atop từ Mã nguồn (Tùy chọn)
Nếu bạn muốn phiên bản mới nhất (ví dụ: nếu phiên bản kho đã cũ hoặc bạn muốn các tính năng tiên phong), bạn có thể biên dịch atop từ mã nguồn.
wget https://www.atoptool.nl/download/atop-2.12.0.tar.gz tar -xzf atop-2.12.0.tar.gz cd atop-2.12.0 make sudo make install
Lưu ý: Bạn có thể cần các công cụ phát triển đã cài đặt như build-essential (Debian) hoặc gcc, make, v.v., tùy thuộc vào bản phân phối của bạn.
Sau khi atop được cài đặt, chúng ta cần kích hoạt dịch vụ ghi nhật ký nền của nó, để nó có thể bắt đầu thu thập dữ liệu hiệu suất tự động khi khởi động.
sudo systemctl enable --now atop sudo systemctl enable --now atop-rotate.timer
Bắt đầu với atop trên Linux
Sau khi bạn đã cài đặt atop và kích hoạt dịch vụ ghi nhật ký của nó, hãy khởi chạy nó trong terminal của bạn:
atop
Sau đó, bạn sẽ thấy một giao diện động, có màu, tương tự như top, làm mới mặc định mỗi 10 giây.
Tùy chỉnh Khoảng thời gian Ghi nhật ký (Mặc định: 600 Giây)
Mặc định, atop ghi nhật ký hoạt động hệ thống mỗi 600 giây (tức là 10 phút), điều này có thể đủ cho giám sát chung, nhưng thường quá thưa cho việc khắc phục sự cố hiệu quả, đặc biệt khi bạn đang truy tìm các đỉnh sử dụng tài nguyên ngắn hạn hoặc gỡ lỗi các nút cổ chai hiệu suất.
sudo sed -i 's/600/60/' /etc/atop/atop.daily [Trên hệ thống RedHat] sudo sed -i 's/600/60/' /etc/default/atop [Trên hệ thống Debian]
Sau khi thực hiện thay đổi này, atop sẽ bắt đầu thu thập nhật ký mỗi phút, cho bạn một bức tranh rõ ràng hơn về hành vi hệ thống theo thời gian, điều này đặc biệt hữu ích khi chẩn đoán các vấn đề ngắt quãng, phân tích xu hướng, hoặc giám sát máy chủ dưới tải nặng.
Xem Thông tin Lập lịch (phím s)
Để có cái nhìn sâu sắc về cách kernel đang lập lịch các tiến trình, hãy nhấn phím s, điều này sẽ hiển thị mỗi tiến trình đang tiêu thụ bao nhiêu thời gian CPU và chúng đã ở trạng thái "running" bao lâu.
atop -s
Phân tích Sử dụng Bộ nhớ (phím m)
Bằng cách nhấn phím m, bạn có được cái nhìn toàn diện về việc sử dụng bộ nhớ của tất cả các tiến trình đang chạy. Cột VSIZE hiển thị tổng bộ nhớ ảo được cấp phát, trong khi RSIZE chỉ ra phần bộ nhớ hiện đang驻留 trong RAM.
Ngoài ra, VGROW và RGROW hiển thị lượng bộ nhớ ảo và驻留 mà một tiến trình đã tăng hoặc giảm trong khoảng thời gian hiện tại. Cột MEM hiển thị phần trăm bộ nhớ tổng thể được sử dụng bởi mỗi tiến trình.
atop -m
Giám sát Sử dụng Đĩa (phím d)
Disk I/O là một nút cổ chai phổ biến trong nhiều hệ thống, và atop làm cho việc giám sát trở nên dễ dàng với phím d, hiển thị hoạt động đĩa ở cấp hệ thống, bao gồm thống kê Quản lý Volume Logic (LVM) và hiệu suất trên mỗi đĩa.
Cột RDDSK và WRDSK hiển thị lượng dữ liệu đang được đọc và ghi (tính bằng KB/s), trong khi cột DSK và LVM giúp xác định volume hoặc đĩa nào hoạt động nhiều nhất.
atop -d
Xem Thông tin Tiến trình Chi tiết (phím v)
Phím v cho phép phân tích chi tiết từng tiến trình, hiển thị các giá trị như UID, PID, GID và phần trăm sử dụng CPU, điều này đặc biệt tiện lợi khi bạn cần truy tìm người dùng hoặc dịch vụ cụ thể bằng định danh số của họ hoặc kiểm tra nhóm nào sở hữu các tiến trình tiêu tốn tài nguyên nhiều.
atop -v
Hiển thị Lệnh Tiến trình (phím c)
Khi bạn cần xem chính xác lệnh nào đã được chạy cho mỗi tiến trình, hãy nhấn phím c, điều này thay thế tên tiến trình bằng toàn bộ dòng lệnh, giúp bạn xác định chính xác script, binary hoặc cờ nào được sử dụng, điều này hữu ích để phân biệt giữa nhiều instance của cùng một ứng dụng hoặc gỡ lỗi các job do người dùng gửi.
atop -c
Nhóm Tiến trình theo Chương trình (phím p)
Để có bản tóm tắt cấp cao về hoạt động cấp chương trình, hãy sử dụng phím p, tổng hợp dữ liệu trên mỗi chương trình thực thi, hiển thị số lần mỗi chương trình được sinh ra và lượng sử dụng tài nguyên tích lũy. Cột bên trái nhất hiển thị số lượng sinh ra, trong khi cột bên phải nhất liệt kê tên chương trình thực tế.
atop -p
Nhóm Tiến trình theo Người dùng (phím u)
Khi bạn quan tâm đến việc sử dụng tài nguyên cấp người dùng, hãy nhấn phím u, hiển thị số tiến trình mỗi người dùng hiện đang chạy hoặc đã chạy trong khoảng thời gian giám sát, cũng như việc sử dụng CPU và bộ nhớ tích lũy của họ.
atop -u
Giám sát Sử dụng Mạng (phím n)
Để kích hoạt thống kê lưu lượng mạng trên mỗi tiến trình, bạn sẽ cần cài đặt và kích hoạt module kernel Netatop, giúp tăng cường khả năng của atop trong việc hiển thị lưu lượng gửi/nhận trên mỗi tiến trình.
# Dựa trên RedHat: sudo yum install kernel-devel zlib-devel # Dựa trên Debian: sudo apt-get install zlib1g-dev
Tải xuống và biên dịch:
wget https://www.atoptool.nl/download/netatop-0.3.tar.gz tar -xvf netatop-0.3.tar.gz cd netatop-0.3 make sudo make install
Để tải module và khởi động daemon tự động sau khi khởi động:
sudo systemctl start netatop sudo systemctl enable netatop
Sau khi cài đặt, nhấn n bên trong atop sẽ hiển thị cho bạn các byte gửi/nhận, số lượng gói tin, và các lỗi liên quan đến mạng cho mỗi tiến trình.
atop -n
Truy cập Nhật ký Lịch sử
Atop lưu trữ các tệp nhật ký nhị phân tại:
/var/log/atop/atop_YYYYMMDD
Ví dụ, một tệp như atop_20250630 chứa nhật ký cho ngày 30 tháng 6, 2025, là các tệp nhị phân và không thể đọc được bởi con người – chỉ có atop mới có thể phân tích chúng.
Để xem một cửa sổ thời gian cụ thể từ nhật ký hôm nay, ví dụ bắt đầu từ 5:05 sáng:
atop -r -b 05:05 -l 1
Ở đây:
-ryêu cầu Atop đọc từ tệp nhật ký.-bchỉ định thời gian bắt đầu.-l 1giới hạn đầu ra chỉ một ảnh chụp khoảng thời gian.
Sử dụng phím space để tiến tới các khoảng thời gian tiếp theo và T để quay lại. Z nhảy đến mục mới nhất.
Nhận Trợ giúp Bên trong Atop
Trong giao diện atop, nhấn ? để xem danh sách đầy đủ các lệnh và phím tắt, điều này hữu ích khi bạn muốn khám phá các tùy chọn ít rõ ràng hơn hoặc điều chỉnh hiển thị theo sở thích của mình.
Kết luận
Tôi hy vọng bạn thấy bài viết của tôi hữu ích và nó giúp bạn thu hẹp hoặc ngăn chặn các vấn đề với hệ thống Linux của bạn. Nếu bạn có bất kỳ câu hỏi nào hoặc muốn nhận sự làm rõ về việc sử dụng atop, vui lòng đăng bình luận trong phần bình luận bên dưới.