Liên hệProfile
Danh mục

Mục Lục

    Hướng dẫn chi tiết cách dùng lệnh ps aux để theo dõi và kiểm tra các tiến trình chiếm dụng RAM

    Nguyễn Hưng

    Ngày đăng:

    08/01/2026

    Cập nhật lần cuối:

    08/01/2026

    Lượt xem:
    Chia sẻ
    Đánh giá
    5/5 - (1 bình chọn)

    Nguyễn Hưng

    Lượt xem:
    Ngày đăng:

    08/01/2026

    Cập nhật lần cuối:

    08/01/2026

    Mục lục

    Cụm lệnh ps aux trong Linux là một dạng mở rộng của lệnh ps, dùng để hiển thị danh sách toàn bộ tiến trình đang chạy trên hệ thống một cách đầy đủ, chi tiết nhất. Trong bài viết này, mình sẽ cùng bạn tìm hiểu chi tiết về cách sử dụng ps aux để liệt kê tất cả tiến trình đang sử dụng, đồng thời xác định tiến trình nào đang chiếm dụng nhiều RAM nhất.

    Những điểm chính

    • Khái niệm: Hiểu rõ lệnh ps aux là gì, ý nghĩa của từng tùy chọn và cách sử dụng lệnh để hiển thị toàn bộ tiến trình đang chạy.
    • Hướng dẫn sử dụng chi tiết: Nắm vững quy trình từng bước, từ việc thực thi lệnh cơ bản, tùy chỉnh kết quả với headawk, đến các hành động chẩn đoán và xử lý tiến trình.
    • Khi nào nên dùng ps: Phân biệt được khi nào nên dùng ps để lấy báo cáo tức thời và khi nào nên dùng top/htop để giám sát theo thời gian thực.
    • Ứng dụng thực tế: Biết cách áp dụng ps aux vào các tác vụ quản trị hệ thống như giám sát, gỡ lỗi.
    • Kết hợp lệnh: Hướng dẫn kết hợp với các lệnh khác như grep, sort để lọc và sắp xếp thông tin hiệu quả.
    • Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các câu hỏi thực tế về việc sử dụng ps trong kịch bản tự động, cách lọc theo người dùng và phương pháp phát hiện tiến trình bất thường.

    Cụm lệnh ps aux là gì?

    ps aux là cú pháp mở rộng của lệnh ps (Process Status), giúp người dùng liệt kê và kiểm soát toàn bộ các tiến trình đang chạy của mọi người dùng trên hệ thống dưới dạng một danh sách chi tiết tại thời điểm hiện tại. Lệnh ps aux được đánh giá là một công cụ tiện ích nền tảng trong môi trường giao diện dòng lệnh của Linux và Unix.

    ps aux là cú pháp mở rộng của lệnh ps (Process Status)
    ps aux là cú pháp mở rộng của lệnh ps (Process Status)

    Thành thạo lệnh ps aux là kỹ năng thiết yếu đối với người dùng Linux, giúp nắm bắt toàn diện mọi hoạt động của hệ thống. Nhờ khả năng cung cấp dữ liệu chi tiết, lệnh này trở thành công cụ đắc lực trong việc giám sát hiệu suất, gỡ lỗi và quản lý tiến trình một cách tối ưu.

    Bước 1: Thực thi lệnh ps aux

    Thay vì chạy lệnh ps aux cơ bản rồi tự mình tìm kiếm, bạn hãy dùng lệnh đã được tối ưu dưới đây để yêu cầu ps xếp những tiến trình chiếm dụng RAM nhiều nhất lên trên cùng.

    ps aux --sort=-rss
    Kết quả sau khi chạy lệnh ps aux --sort=-rss
    Kết quả sau khi chạy lệnh ps aux –sort=-rss

    Giải thích lệnh:

    • a: Hiển thị tiến trình của tất cả người dùng.
    • u: Hiển thị theo định dạng user-oriented (chi tiết hơn).
    • x: Hiển thị cả các tiến trình không được chạy từ một terminal.
    • --sort=-rss:
      • sort: Yêu cầu sắp xếp kết quả.
      • rss: Sắp xếp dựa trên cột RSS (Resident Set Size).
      • -: Dấu trừ phía trước có nghĩa là sắp xếp theo thứ tự giảm dần (descending).

    Giải thích ý nghĩa của từng cột dữ liệu khi sử dụng các lệnh như ps aux:

    • USER: Người dùng sở hữu tiến trình.
    • PID: Process ID, mã định danh duy nhất của tiến trình.
    • %MEM: Phần trăm bộ nhớ RAM mà tiến trình đang sử dụng.
    • VSZ: Bộ nhớ ảo (Virtual Size), thường không phải là con số bạn cần quan tâm.
    • RSS – Resident Set Size: Là lượng RAM vật lý thực tế mà tiến trình đang chiếm dụng, được tính bằng Kilobytes (KB).
    • COMMAND: Toàn bộ lệnh đã khởi chạy tiến trình.

    Bước 2: Tùy chỉnh kết quả và phân tích

    Danh sách từ lệnh trên có thể rất dài và cột RSS (tính bằng KB) thường khó đọc, bạn hãy kết hợp thêm các công cụ khác để có một báo cáo gọn gàng và trực quan.

    1. Lấy 10 tiến trình đầu bảng:

    Bạn sử dụng lệnh head để lấy 10 tiến trình chiếm nhiều RAM nhất:

    # Lấy 11 dòng (1 dòng tiêu đề + 10 tiến trình)
    ps aux --sort=-rss | head -n 11

    Kết hợp hiển thị là một báo cáo Top 10 tiến trình chiếm dụng RAM được thể hiện gọn gàng, dễ đọc và được xếp hạng chính xác.

    ps aux --sort=-rss | head -n 11 | awk 'NR>1 {$6=int($6/1024)"M";}{ print;}'
    Kết hợp hiển thị là một báo cáo Top 10 tiến trình chiếm dụng RAM
    Kết hợp hiển thị là một báo cáo Top 10 tiến trình chiếm dụng RAM

    2. Chuyển đổi RSS sang MB 

    Con số 1572864 (KB) thường gây khó xác định và tính toán hơn 1536M (MB), vì vậy bạn có thể dùng awk để tự động chuyển đổi đơn vị.

    ps aux --sort=-rss | head -n 11 | awk 'NR==1{print}; NR>1{printf "%-10s %-5s %-5s %-5s %-10s %-7s %s\n", $1, $2, $3, $4, $5, int($6/1024)"M", $11}'

    Lệnh awk có nhiệm vụ chính là định dạng lại đầu ra cho thẳng hàng và chuyển đổi cột thứ 6 ($6 – cột RSS) sang MB.

    Bước 3: Đánh giá và xử lý

    Khi đã xác định được tiến trình, ví dụ: một process java có PID 12345 đang dùng 2GB RAM, bạn có thể thực hiện các bước tiếp theo:

    1. Kiểm tra nguyên nhân: Bạn hãy xác định tại sao ứng dụng Java dùng nhiều RAM và kiểm tra log của ứng dụng. Có thể tiến trình này đang bị rò rỉ bộ nhớ (memory leak) hoặc đang xử lý một tác vụ nặng đột xuất.

    2. Khởi động lại: Nếu có thể, bạn hãy khởi động lại dịch vụ để giải phóng tài nguyên bằng cách thực thi lệnh sau:

    sudo systemctl restart my-java-app

    3. Dừng tiến trình: Nếu tiến trình không phản hồi, bạn có thể chạy lệnh dưới đây buộc tiến trình dừng lại.

    # Gửi tín hiệu yêu cầu dừng (an toàn hơn, nên thử trước):
    kill 12345 
    # Nếu không được, buộc dừng (lựa chọn cuối cùng):
    kill -9 12345

    Nên dùng ps hay top/htop?

    • Dùng ps khi: Bạn cần một báo cáo tức thời về trạng thái bộ nhớ, hoặc cần lấy dữ liệu để ghi log, hoặc sử dụng trong các kịch bản (script) tự động giám sát.
    • Dùng top/htop khi: Bạn cần theo dõi sự thay đổi của bộ nhớ theo thời gian thực trên một giao diện tương tác.

    Lệnh ps aux --sort=-rss là một công cụ nhanh chóng, mạnh mẽ và luôn sẵn có. Bằng cách kết hợp lệnh này với headawk, bạn có thể tạo ra một báo cáo gọn gàng, chính xác và ngay lập tức khoanh vùng được các tiến trình đang gây ra vấn đề về bộ nhớ.

    Trường hợp nên dùng ps và top/htop
    Trường hợp nên dùng ps và top/htop

    Giám sát tình trạng và tài nguyên của các tiến trình

    Ứng dụng cơ bản và phổ biến nhất của ps aux là giám sát hệ thống, bằng cách cung cấp một cái nhìn tổng quan tức thì về tất cả các tiến trình đang chạy, lệnh này cho phép quản trị viên nhanh chóng đánh giá tình trạng của máy chủ.

    Bạn có thể kiểm tra xem một dịch vụ quan trọng, như máy chủ web Apache hoặc cơ sở dữ liệu MySQL, có đang hoạt động hay không. Đồng thời, việc theo dõi các cột %CPU%MEM giúp giám sát chặt chẽ mức độ tiêu thụ tài nguyên của từng ứng dụng, từ đó phát hiện sớm các xu hướng bất thường trước khi chúng trở thành sự cố nghiêm trọng.

    Giám sát tình trạng và tài nguyên của các tiến trình
    Giám sát tình trạng và tài nguyên của các tiến trình (Nguồn: Internet)

    Khắc phục sự cố và gỡ lỗi

    Khi hệ thống đột nhiên trở nên chậm hoặc không phản hồi, việc sử dụng lệnh ps aux sẽ giúp xác định nhanh chóng nguyên nhân gây ra sự cố bằng cách chỉ ra các tiến trình đang tiêu thụ tài nguyên một cách bất thường. 

    Nếu một tiến trình nào đó chiếm một tỷ lệ CPU hoặc bộ nhớ quá cao và duy trì trong thời gian dài, đó có thể là một dấu hiệu cảnh báo sớm cho các vấn đề tiềm ẩn như vòng lặp vô hạn, rò rỉ bộ nhớ hoặc một lỗi phần mềm cần được khắc phục.

    Hỗ trợ quản lý và điều khiển tiến trình

    ps aux không trực tiếp thay đổi trạng thái của các tiến trình, nhưng sẽ cung cấp thông tin đầu vào quan trọng cho các lệnh quản lý khác. Bằng cách xác định PID (Process ID) của một tiến trình, người dùng có thể thực hiện các hành động điều khiển một cách chính xác.

    Ví dụ, nếu một ứng dụng bị treo, bạn có thể sử dụng ps aux để tìm PID của nó, sau đó dùng lệnh kill <PID> để chấm dứt tiến trình đó. Tương tự, bạn có thể sử dụng lệnh nice hoặc renice cùng với PID để thay đổi mức độ ưu tiên của một tiến trình, đảm bảo các tác vụ quan trọng luôn được ưu tiên tài nguyên CPU.

    Bạn có thể sử dụng ps aux để tìm PID của nó, sau đó dùng lệnh kill <PID>
    Bạn có thể sử dụng ps aux để tìm PID của nó, sau đó dùng lệnh kill (Nguồn: Internet)

    Lọc kết quả đầu ra bằng lệnh grep

    Trong một hệ thống đang hoạt động, danh sách tiến trình từ ps aux có thể rất dài, gây khó khăn cho việc tìm kiếm một tiến trình cụ thể. Bằng cách kết hợp hai lệnh, bạn có thể dễ dàng lọc và chỉ hiển thị những dòng chứa thông tin mình cần.

    • Cú pháp lọc cơ bản: Để tìm tất cả các tiến trình liên quan đến trình duyệt “firefox”, bạn có thể sử dụng lệnh:
    $ps aux | grep firefox
    Tìm tất cả các tiến trình liên quan đến trình duyệt "firefox"
    Tìm tất cả các tiến trình liên quan đến trình duyệt “firefox”
    • Đếm số lượng tiến trình: Để không chỉ lọc mà còn đếm số lượng tiến trình tìm thấy, bạn có thể kết hợp thêm lệnh wc -l:
    $ps aux | grep firefox | wc -l
    Đếm số lượng tiến trình
    Đếm số lượng tiến trình

    Sắp xếp kết quả theo tiêu chí tài nguyên

    Khi cần xác định các tiến trình đang tiêu tốn nhiều tài nguyên nhất, việc sắp xếp kết quả đầu ra là vô cùng hữu ích. Lệnh $ps$ trên các hệ thống Linux hiện đại hỗ trợ tùy chọn --sort để thực hiện việc này một cách trực tiếp.

    • Sắp xếp theo mức sử dụng CPU: Để liệt kê các tiến trình theo thứ tự sử dụng CPU giảm dần, hãy dùng lệnh:
    $ps aux --sort=-%cpu
    Sắp xếp kết quả theo mức sử dụng CPU giảm dần
    Sắp xếp kết quả theo mức sử dụng CPU giảm dần
    • Sắp xếp theo mức sử dụng bộ nhớ: Tương tự, để sắp xếp theo mức sử dụng RAM giảm dần:
    $ps aux --sort=-%mem
    Sắp xếp kết quả theo mức sử dụng RAM giảm dần
    Sắp xếp kết quả theo mức sử dụng RAM giảm dần
    • Sắp xếp theo nhiều tiêu chí: Bạn có thể kết hợp nhiều tiêu chí sắp xếp. Ví dụ, lệnh sau sẽ sắp xếp theo bộ nhớ giảm dần, sau đó theo CPU giảm dần đối với các tiến trình có cùng mức sử dụng bộ nhớ:
    $ps aux --sort=-%mem,-%cpu
    Sắp xếp kết quả dựa theo nhiều tiêu chí khác nhau
    Sắp xếp kết quả dựa theo nhiều tiêu chí khác nhau
    • Quy tắc sắp xếp: Dấu gạch ngang (-) đứng trước tên cột biểu thị thứ tự sắp xếp giảm dần, trong khi dấu cộng (+) biểu thị thứ tự tăng dần.

    Tùy chỉnh định dạng hiển thị cột 

    • Tùy chỉnh các cột hiển thị: Nếu bạn chỉ quan tâm đến một vài thông tin cụ thể. Tùy chọn -o cho phép bạn chỉ định chính xác những cột nào cần được hiển thị. Ví dụ:
    $ps -eo pid,user,%cpu,%mem,command --sort=-%mem
    Tùy chỉnh kết quả theo các cột hiển thị
    Tùy chỉnh kết quả theo các cột hiển thị

    Lệnh này chỉ hiển thị các cột PID, người dùng, %CPU, %MEM và lệnh, đồng thời sắp xếp kết quả theo mức sử dụng bộ nhớ.

    • Xem cấu trúc cây tiến trình: Để hiểu rõ hơn về mối quan hệ cha – con giữa các tiến trình, tùy chọn --forest sẽ định dạng đầu ra dưới dạng một cây phân cấp, rất trực quan và hữu ích.
    $ps aux --forest
    Xem cấu trúc cây tiến trì
    Xem cấu trúc cây tiến trì

    Câu hỏi thường gặp

    Vì sao nên ưu tiên dùng lệnh ps khi lập các kịch bản giám sát tự động cho VPS?

    Vì lệnh ps cung cấp dữ liệu trạng thái tiến trình theo từng thời điểm, dễ lưu vào file, thuận tiện tích hợp vào script tự động và phân tích log lịch sử nhanh chóng.

    Lệnh ps aux kết hợp với head/awk có phù hợp cho VPS dung lượng nhỏ không?

    Hoàn toàn phù hợp vì các lệnh này rất nhẹ, xử lý dữ liệu nhanh, không tốn tài nguyên và có thể chạy thường xuyên mà không làm ảnh hưởng hiệu năng hệ thống VPS nhỏ.

    Có thể kiểm tra mức độ chiếm dụng RAM của tiến trình theo từng user cụ thể bằng ps aux không?

    Có, bạn chỉ cần dùng thêm grep lọc theo tên user mong muốn trên đầu ra của ps aux.

    Làm thế nào để biết tiến trình nào bất thường qua báo cáo ps aux?

    Bạn hãy chú ý các tiến trình nằm ở đầu danh sách khi sắp xếp giảm dần RSS hoặc %MEM, đặc biệt nếu lệnh hay ứng dụng đó không thuộc dạng dịch vụ quan trọng thì nên kiểm tra kỹ để xử lý kịp thời.

    Có thể dùng kết quả ps aux kiểm tra nguyên nhân server bị treo RAM không?

    Có thể, việc xác định tiến trình ngốn RAM nhất qua báo cáo ps aux là bước đầu để tìm ra nguyên nhân gây treo máy, phục vụ công tác tối ưu hoặc điều chỉnh cấu hình server.

    Làm thế nào để tìm và dừng (kill) một tiến trình?

    Quy trình gồm 2 bước:
    Tìm PID: Dùng ps aux | grep <tên_tiến_trình> để tìm ra PID (Process ID) của tiến trình bạn muốn dừng.
    Dừng tiến trình: Dùng lệnh kill <PID>. Ví dụ, nếu PID của tiến trình là 1234, bạn chạy lệnh kill 1234. Nếu tiến trình không dừng, bạn có thể dùng tín hiệu mạnh hơn: kill -9 1234.

    Qua bài viết này, bạn đã nắm được cách sử dụng lệnh ps aux và các tùy chọn nâng cao để kiểm tra, phân tích những tiến trình đang chiếm dụng RAM trên hệ thống Linux. Việc kết hợp các lệnh như –sort=-rss, head và awk sẽ giúp bạn sắp xếp, lọc và chuyển đổi số liệu một cách trực quan, dễ đọc nhất. Áp dụng các thao tác hướng dẫn ở trên sẽ giúp bạn giảm thiểu rủi ro treo máy, quá tải RAM và nâng cao hiệu quả vận hành server lâu dài.

    5/5 - (1 bình chọn)
    Nguyễn Hưng
    Tôi là Nguyễn Hưng hay còn được biết đến với nickname là Bo, chuyên gia về hệ thống, mạng và bảo mật. Tôi là Co-Founder của Vietnix và Co-Founder của dự án Chống Lừa Đảo.
    0 0 đánh giá
    Đánh giá bài viết
    Theo dõi
    Thông báo của
    guest
    0 Góp ý
    Cũ nhất
    Mới nhất Được bỏ phiếu nhiều nhất
    Phản hồi nội tuyến
    Xem tất cả bình luận

    BÀI VIẾT LIÊN QUAN

    Cách dùng dmidecode trên Linux để xem thông tin phần cứng chính xác và nhanh chóng
    Cách dùng dmidecode trên Linux để xem thông tin phần cứng chính xác và nhanh chóng

    dmidecode là một công cụ dòng lệnh trên Linux dùng để đọc và hiển thị thông tin phần cứng máy tính từ bảng DMI hoặc SMBIOS cung cấp bởi BIOS, giúp kiểm tra chi tiết như nhà sản xuất, model, số serial, BIOS, CPU, RAM mà không cần mở máy. Trong bài viết này, mình…

    27/02/2026

    Lệnh partx Linux là gì? 7 ví dụ ứng dụng thực tế của lệnh partx
    Lệnh partx Linux là gì? 7 ví dụ ứng dụng thực tế của lệnh partx

    Lệnh partx Linux là một công cụ dòng lệnh thuộc gói util-linux, được sử dụng để thêm, xóa hoặc liệt kê các phân vùng của thiết bị đĩa vào bảng phân vùng của hệ thống mà không cần khởi động lại hoặc gắn lại thiết bị. Trong bài viết này, mình sẽ hướng dẫn bạn…

    27/02/2026

    Hướng dẫn 7 cách kiểm tra CPU trên Linux chính xác và nhanh chóng
    Hướng dẫn 7 cách kiểm tra CPU trên Linux chính xác và nhanh chóng

    Trong môi trường quản trị Linux, việc kiểm tra tốc độ xung nhịp CPU là một thao tác cần thiết giúp người dùng đánh giá khả năng chịu tải, phát hiện các điểm nghẽn hiệu suất  và hỗ trợ tối ưu trong quá trình tối ưu hóa hoặc khắc phục sự cố phần cứng. Trong…

    27/02/2026

    Hướng dẫn xóa bộ nhớ Cache, bộ đệm và Swap trong Linux nhanh chóng, chi tiết
    Hướng dẫn xóa bộ nhớ Cache, bộ đệm và Swap trong Linux nhanh chóng, chi tiết

    Trong Linux, bộ nhớ cache là nơi lưu trữ tạm thời dữ liệu và các file đã truy cập gần đây để giảm thời gian truy xuất ở lần tiếp theo. Tuy nhiên, theo thời gian, bộ nhớ cache có thể chiếm dụng quá nhiều RAM, đặc biệt trên các máy chủ có uptime dài…

    27/02/2026

    linux

    lenh

    text