Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh top của Linux, một công cụ mạnh mẽ để theo dõi hiệu suất hệ thống và việc sử dụng tài nguyên. Chúng ta sẽ bắt đầu bằng cách hiểu chức năng cơ bản của lệnh top, bao gồm khả năng hiển thị thông tin thời gian thực về các tiến trình đang chạy, CPU, bộ nhớ và các tài nguyên hệ thống khác. Sau đó, chúng ta sẽ đi sâu vào các tùy chọn và tùy chỉnh khác nhau có sẵn để điều chỉnh đầu ra của lệnh top cho phù hợp với nhu cầu cụ thể của mình, cho phép chúng ta phân tích hiệu quả hiệu suất hệ thống và xác định các tắc nghẽn tiềm ẩn.
Tìm hiểu lệnh top
Trong bước này, chúng ta sẽ tìm hiểu về lệnh top, một công cụ mạnh mẽ để giám sát hiệu suất hệ thống và việc sử dụng tài nguyên trong Linux. Lệnh top cung cấp thông tin thời gian thực về các tiến trình đang chạy, CPU, bộ nhớ và các tài nguyên hệ thống khác.
Hãy bắt đầu bằng cách chạy lệnh top:
$ top
Ví dụ đầu ra:
top - 14:22:37 up 1 day, 12:34, 0 users, load average: 0.00, 0.01, 0.05
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
Lệnh top hiển thị nhiều thông tin hệ thống khác nhau, bao gồm:
- Uptime: Thời gian kể từ lần khởi động lại hệ thống gần nhất.
- Tasks: Tổng số các tiến trình đang chạy, sleeping, stopped và zombie.
- CPU utilization: Tỷ lệ phần trăm thời gian CPU được sử dụng ở chế độ user, chế độ system, chế độ nice, idle, waiting, hardware interrupts và software interrupts.
- Memory usage: Tổng dung lượng bộ nhớ, bộ nhớ trống, đã sử dụng và bộ nhớ được buffered/cached.
- Swap usage: Tổng dung lượng swap, swap trống và swap đã sử dụng.
- Process list: Danh sách các tiến trình tốn nhiều tài nguyên nhất, được sắp xếp theo mức sử dụng CPU hoặc bộ nhớ.
Bạn có thể tùy chỉnh đầu ra của lệnh top bằng cách nhấn các phím khác nhau, chẳng hạn như:
h
: Hiển thị menu trợ giúp1
: Chuyển đổi giữa mức sử dụng CPU trên mỗi CPU và tổng hợpf
: Quản lý các cột được hiển thịo
: Tùy chỉnh thứ tự sắp xếpu
: Lọc các tiến trình theo một user cụ thể
Để thoát lệnh top, hãy nhấn q
.
Khám phá các Tùy chọn và Tùy chỉnh của Lệnh top
Trong bước này, chúng ta sẽ khám phá các tùy chọn và tùy chỉnh khác nhau có sẵn trong lệnh top để điều chỉnh đầu ra cho phù hợp với nhu cầu cụ thể của bạn.
Hãy bắt đầu bằng cách hiển thị menu trợ giúp:
$ top -h
Thao tác này sẽ hiển thị cho bạn tất cả các tùy chọn có sẵn và mô tả của chúng. Một số tùy chọn thường được sử dụng bao gồm:
-d
: Đặt độ trễ giữa các lần cập nhật (mặc định là 3 giây)-n
: Chỉ định số lần lặp lại (mặc định là không giới hạn)-p
: Giám sát các ID tiến trình cụ thể-u
: Hiển thị các tiến trình thuộc sở hữu của một user cụ thể-o
: Sắp xếp danh sách tiến trình theo một cột cụ thể
Ví dụ: để hiển thị 5 tiến trình hàng đầu được sắp xếp theo mức sử dụng bộ nhớ, bạn có thể chạy:
$ top -o %MEM -n 5
Ví dụ đầu ra:
top - 14:30:37 up 1 day, 12:42, 0 users, load average: 0.00, 0.00, 0.00
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
Bạn cũng có thể tùy chỉnh các cột được hiển thị bằng cách nhấn phím f
khi đang ở trong lệnh top. Thao tác này sẽ cho phép bạn thêm, xóa hoặc sắp xếp lại các cột cho phù hợp với nhu cầu của mình.
Để thoát lệnh top, hãy nhấn q
.
Phân tích Hiệu suất Hệ thống bằng top
Trong bước cuối cùng này, chúng ta sẽ sử dụng lệnh top để phân tích hiệu suất hệ thống và xác định bất kỳ tắc nghẽn hoặc sự cố tiềm ẩn nào.
Hãy bắt đầu bằng cách theo dõi hiệu suất tổng thể của hệ thống:
$ top
Hãy chú ý đến các số liệu chính sau:
- CPU utilization: Tỷ lệ phần trăm thời gian CPU được sử dụng ở chế độ user, chế độ system, chế độ nice, idle, waiting, hardware interrupts và software interrupts. Mức sử dụng CPU cao có thể cho thấy một tiến trình hoặc ứng dụng bị ràng buộc bởi CPU.
- Memory usage: Tổng dung lượng bộ nhớ, bộ nhớ trống, đã sử dụng và bộ nhớ được buffered/cached. Mức sử dụng bộ nhớ cao có thể cho thấy một tiến trình sử dụng nhiều bộ nhớ hoặc rò rỉ bộ nhớ tiềm ẩn.
- Swap usage: Tổng dung lượng swap, swap trống và swap đã sử dụng. Việc sử dụng swap quá mức có thể cho thấy thiếu bộ nhớ vật lý.
- Process list: Danh sách các tiến trình tốn nhiều tài nguyên nhất, được sắp xếp theo mức sử dụng CPU hoặc bộ nhớ. Xác định bất kỳ tiến trình nào đang tiêu thụ một lượng đáng kể tài nguyên hệ thống.
Để điều tra sâu hơn một tiến trình cụ thể, bạn có thể sử dụng các tùy chọn sau:
k
: Kill một tiến trìnhr
: Renice một tiến trình (thay đổi mức độ ưu tiên của nó)f
: Quản lý các cột được hiển thịo
: Tùy chỉnh thứ tự sắp xếp
Ví dụ: để xem 5 tiến trình hàng đầu được sắp xếp theo mức sử dụng CPU:
$ top -o %CPU -n 5
Ví dụ đầu ra:
top - 14:36:37 up 1 day, 12:48, 0 users, load average: 0.00, 0.00, 0.00
Tasks: 101 total, 1 running, 99 sleeping, 1 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem : 1992.0 total, 1537.0 free, 235.0 used, 220.0 buff/cache
MiB Swap: 2047.9 total, 2047.9 free, 0.0 used. 1555.3 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 8788 5688 3828 S 0.0 0.3 0:02.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
3 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_gp
4 root 20 0 0 0 0 I 0.0 0.0 0:00.00 rcu_par_gp
5 root 20 0 0 0 0 I 0.0 0.0 0:00.00 slub_flushwq
Điều này sẽ giúp bạn xác định bất kỳ tiến trình nào đang tiêu thụ một lượng đáng kể tài nguyên CPU.
Để thoát lệnh top, hãy nhấn q
.
Tóm tắt
Trong lab này, trước tiên chúng ta đã tìm hiểu về lệnh top, một công cụ mạnh mẽ để theo dõi hiệu suất hệ thống và việc sử dụng tài nguyên trong Linux. Chúng ta đã khám phá các thông tin hệ thống khác nhau được hiển thị bởi lệnh top, bao gồm thời gian hoạt động, thống kê tác vụ, mức sử dụng CPU và bộ nhớ và danh sách các tiến trình tốn nhiều tài nguyên nhất. Chúng ta cũng đã khám phá cách tùy chỉnh đầu ra của lệnh top bằng cách sử dụng các phím khác nhau, chẳng hạn như chuyển đổi giữa mức sử dụng CPU trên mỗi CPU và tổng hợp, quản lý các cột được hiển thị và tùy chỉnh thứ tự sắp xếp của danh sách tiến trình.