Hướng dẫn phân tích, giải thích lệnh TOP trong Linux

Lệnh top trong Linux được sử dụng để hiển thị tất cả các tiến trình đang chạy trong môi trường Linux. Hướng dẫn này chỉ cho bạn cách sử dụng lệnh top thông qua việc giải thích những tham số khác nhau có sẵn và nội dung mà chúng hiển thị.

Cách chạy lệnh top

Về cơ bản, tất cả những gì bạn cần làm để hiển thị các tiến trình đang chạy hiện tại là gõ như sau vào terminal:

top

Thông tin nào được hiển thị?

Rất nhiều thông tin sẽ được hiển thị khi bạn sử dụng lệnh top, mình sẽ giải thích tất cả những thông tin này một cách dễ hiểu và đơn giản nhất.

 

Thông tin sau được hiển thị khi bạn chạy lệnh top trong Linux:

Dòng 1

 

  • Thời gian hiện tại của hệ thống
  • Thời gian uptime
  • Số lượng người dùng
  • Trung bình tải
  • Trung bình tải hiển thị thời gian load hệ thống trong 1 phút, 5 phút và 15 phút cuối.

Trung bình tải ở đây mỗi hệ thống sẽ mỗi khác. Nếu Server/VPS của bạn có 2 Cpu(s) thì trung bình tải chỉ nên là dưới 2. Tương tự Server/VPS có 40 cpu(s) thì trung bình tải chỉ nên dưới 40. Nếu con số này cao hơn số CPU của bạn thì hệ thống đang quá tải, số lượng công việc xử lý vượt qua mức CPU có thể xử lý hiện tại.

Dòng 2

 

  • Tổng số tác vụ có trên máy chủ
  • Số lượng tác vụ đang chạy
  • Số lượng tác vụ trong trạng thái “ngủ”
  • Số lượng tác vụ đã dừng
  • Số lượng tác vụ zombie (tiến trình không tồn tại hoặc bị hỏng)

Dòng 3

 

  • Mức sử dụng CPU bởi người dùng theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi hệ thống theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi các tiến trình có mức ưu tiên thấp theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi idle process (tiến trình cho biết bộ xử lý đang rảnh rỗi) theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi io wait (thời gian CPU không hoạt động để chờ I/O disk hoàn thành) theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi việc ngắt phần cứng theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi việc ngắt phần mềm theo tỷ lệ phần trăm
  • Mức sử dụng CPU bởi steal time (thời gian CPU ảo “chờ” CPU thực, trong khi bộ ảo hóa đang phục vụ bộ xử lý ảo khác) theo tỷ lệ phần trăm

Dòng 4

 

  • Tổng bộ nhớ hệ thống(đơn vị Kib)
  • Bộ nhớ trống
  • Bộ nhớ đã sử dụng
  • Bộ nhớ đệm buffer cache

Dòng 5

 

  • Tổng swap có sẵn(đơn vị Kib)
  • Tổng swap còn trống
  • Tổng swap đã sử dụng
  • Bộ nhớ khả dụng

Swap là RAM ảo, được sử dụng khi bộ nhớ vật lý (RAM) bị đầy. Luôn luôn bật Swap để khi hệ thống đầy ram vật lý sẽ không bị treo.

Hiện tại mình đang tắt Swap(Không nên), để bật lại swap các bạn sử dụng lệnh:

swapon -a

Một số trường hợp thông số swap used của bạn sẽ tăng lên khi ram đầy, và khi ram hết đầy thì lượng swap này cũng không giảm đi. Để giảm swap used về 0 các bạn sử dụng 2 lệnh sau:

swapoff -a

swapon -a

Các bạn chờ lệnh swapoff -a chạy xong rồi mới chạy lệnh swapon -a , thời gian lâu hay ngắn tùy vào lượng swap đã sử dụng (swap used) của bạn nhiều hay ít. Trong quá trình này swap used sẽ tăng lên 100%.

Nguyên nhân mình tắt swap vì mình dùng xong lệnh swapoff -a mà quên chạy tiếp swapon -a  các bạn đừng như mình.

Bảng chính

 

 

  • ID tiến trình
  • Người dùng(Mình có ẩn bớt một số user chứ mặc định không có trống)
  • Mức độ ưu tiên
  • Mức độ nice (gọi một tập lệnh shell với mức độ ưu tiên cụ thể)
  • Bộ nhớ ảo được sử dụng bởi tiến trình
  • Bộ nhớ “thường trú” mà một tiến trình sử dụng (tức là tiến trình luôn ở trong bộ nhớ và không thể chuyển ra thiết bị lưu trữ khác)
  • Bộ nhớ có thể chia sẻ
  • CPU được sử dụng bởi tiến trình theo tỷ lệ phần trăm của 1 cpu.
  • Bộ nhớ được sử dụng bởi tiến trình theo tỷ lệ phần trăm
  • Thời gian tiến trình đã được chạy
  • Lệnh

Giữ lệnh top luôn chạy trong nền trên máy tính Linux

Bạn có thể dễ dàng giữ lệnh top luôn chạy mà không cần phải nhập lệnh vào terminal mỗi lần mở máy.

Để tạm dừng lệnh top và tiếp tục sử dụng terminal, nhấn CTRL + Z trên bàn phím.

Để đưa lệnh top trở lại foreground, hãy nhập fg.

Các tham số chính cho lệnh top

  • -h - Hiển thị phiên bản hiện tại
  • -c - Tham số này chuyển đổi trạng thái cột lệnh từ hiển thị lệnh sang hiển thị tên chương trình và ngược lại
  • -d - Chỉ định thời gian trễ khi refresh màn hình
  • -o - Sắp xếp theo trường được đặt tên
  • -p - Chỉ hiển thị các tiến trình với ID được chỉ định
  • -u - Chỉ hiển thị những tiến trình của người dùng được chỉ định
  • -i - Không hiển thị các idle task

Hiển thị phiên bản hiện tại

Nhập thông tin sau để hiển thị chi tiết phiên bản hiện tại cho lệnh top:

top -h

Đầu ra ở dạng sau:

procps -ng version 3.3.10

Chỉ định thời gian trễ giữa các lần refresh màn hình

Để chỉ định độ trễ giữa các lần refresh màn hình trong khi sử dụng top, nhập lệnh sau:

top -d

Để refresh màn hình sau mỗi 5 giây, hãy nhập:

top -d 5

Lấy danh sách các cột để sắp xếp theo thứ tự

Lấy danh sách những cột mà bạn có thể sắp xếp lệnh top bằng cách nhập như sau:

top -O

Có rất nhiều cột được liệt kê, do đó bạn có giảm bớt đầu ra hiển thị như sau:

top -O | less

Sắp xếp các cột trong lệnh top theo tên cột

Sử dụng lệnh trong phần trước để tìm một cột có thể sắp xếp, rồi dùng cú pháp sau để sắp xếp theo cột đó:

top -o

Để sắp xếp theo % CPU, hãy gõ lệnh sau:

top -o %CPU

Chỉ hiển thị những tiến trình cho một người dùng cụ thể

Để chỉ hiển thị các tiến trình mà người dùng cụ thể đang chạy, hãy sử dụng cú pháp sau:

top -u

Ví dụ, để hiển thị tất cả các tiến trình mà người dùng đang chạy, hãy gõ lệnh sau:

top -u gary

Ẩn các Idle Task

Chế độ xem mặc định trong top có thể hơi lộn xộn và nếu bạn chỉ muốn xem các tiến trình đang hoạt động (nghĩa là những tiến trình không ở chế độ idle - “nhàn rỗi”) thì bạn có thể chạy lệnh sau:

top -i

Thêm cột được hiển thị với lệnh top

Trong khi chạy lệnh top, bạn có thể nhấn phím F để hiển thị danh sách các trường có thể được hiển thị trong bảng:

  • Sử dụng các phím mũi tên để di chuyển lên và xuống danh sách các trường.
  • Để hiển thị một trường trên màn hình, nhấn phím D. Để xóa trường, nhấn D trên trường đó một lần nữa. Dấu hoa thị (*) sẽ xuất hiện bên cạnh những trường được hiển thị.
  • Bạn có thể sắp xếp bảng theo trường bằng cách nhấn phím S trên trường bạn muốn sắp xếp.
  • Nhấn phím Enter để xác nhận thay đổi và nhấn Q để thoát.

Chuyển đổi giữa các chế độ

Trong khi chạy lệnh top, bạn có thể nhấn phím A để chuyển đổi giữa màn hình tiêu chuẩn và màn hình thay thế.

Thay đổi màu sắc

Nhấn phím Z để thay đổi màu của các giá trị trong top.

Có ba giai đoạn cần thiết để thay đổi màu sắc:

  1. Nhấn S cho dữ liệu tóm tắt, M cho thông báo, H cho tiêu đề cột hoặc T cho thông tin tác vụ để nhắm mục tiêu đến khu vực cần thay đổi màu sắc.
  2. Chọn màu cho mục tiêu đã xác định: 0 là màu đen, 1 là màu đỏ, 2 là màu xanh lá cây, 3 là màu vàng, 4 là màu xanh lam, 5 là màu đỏ tươi, 6 là màu lục lam và 7 là màu trắng
  3. Nhấn Enter để xác nhận thay đổi

Nhấn phím B để in đậm văn bản.

Thay đổi hiển thị trong khi lệnh top đang chạy

Trong khi lệnh top đang chạy, bạn có thể bật và tắt nhiều tính năng bằng cách nhấn các phím có liên quan.

Bảng sau đây cho thấy phím cần nhấn và chức năng mà nó cung cấp:

Phím chức năng

Mô tả

A

Hiển thị thay thế (tắt mặc định)

d

Refresh màn hình sau độ trễ được chỉ định, tính bằng giây (mặc định là 1,5 giây)

p

Giám sát PID (mặc định tắt), hiển thị tất cả các tiến trình

B

Kích hoạt bôi đậm (mặc định bật), các giá trị được hiển thị bằng văn bản in đậm

l

Hiển thị trung bình tải (mặc định bật)

t

Xác định cách hiển thị các tác vụ (mặc định 1 + 1)

m

Xác định cách sử dụng bộ nhớ được hiển thị (mặc định 2 dòng)

1

CPU đơn (mặc định tắt) - tức là hiển thị cho nhiều CPU

J

Căn số sang phải (mặc định bật)

j

Căn chỉnh văn bản sang phải (mặc định tắt)

R

Sắp xếp ngược (mặc định bật) - Từ các tiến trình cao nhất đến những tiến trình thấp nhất

S

Thời gian tích lũy (mặc định tắt)

u

Bộ lọc người dùng (mặc định tắt), chỉ hiển thị euid

U

Bộ lọc người dùng (mặc định tắt) hiển thị bất kỳ uid nào

V

Chế độ xem Forest (mặc định bật) hiển thị dưới dạng các nhánh

x

Highlight cột (mặc định tắt)

z

Hiển thị nhiều màu hoặc đơn sắc (mặc định bật)

Còn có nhiều tham số hơn dành cho lệnh top. Bạn có thể đọc thêm về chúng bằng cách nhập thông tin sau vào cửa sổ terminal:

man top

Cảm ơn bạn đã theo dõi bài viết, để hỗ trợ xử lý bạn có thể liên hệ với kỹ thuật AZDIGI tại 2 kênh bên dưới.

• Hotline 247: 028 730 24768 (Ext 0)
• Ticket/Email: Bạn dùng email đăng ký dịch vụ gửi trực tiếp về [email protected]