1. Home
  2. Linux
  3. 20 dòng lệnh để theo dõi hiệu suất Linux
VnTips 9 tháng trước

20 dòng lệnh để theo dõi hiệu suất Linux

Trở thành quản trị viên System or Network được giao nhiệm vụ giám sát và gỡ lỗi các vấn đề về hiệu suất hệ thống Linux hàng ngày là một trách nhiệm vô cùng khó khăn. Đây là công việc đòi hỏi sự cống hiến không ngừng, sự hiểu biết sâu sắc về hệ thống Linux và cam kết liên tục để đảm bảo hiệu suất và độ tin cậy tối ưu. Vì lý do này, chúng tôi đã tuyển chọn một danh sách đầy đủ gồm 20 công cụ giám sát các dòng lệnh (comand line) được sử dụng thường xuyên nhất. Những công cụ vô giá này có thể tỏ ra không thể thiếu đối với mọi Quản trị viên hệ thống Linux/Unix, trao quyền cho họ giám sát, chẩn đoán và duy trì tình trạng cũng như hiệu suất của hệ thống một cách hiệu quả.

Các công cụ giám sát này có sẵn trong mọi phiên bản của Linux và có thể hữu ích để giám sát và tìm ra nguyên nhân thực sự của các vấn đề về hiệu suất. Danh sách lệnh hiển thị ở đây là rất đủ để bạn chọn lệnh phù hợp với kịch bản giám sát của mình.

1. Top – Giám sát quy trình Linux

Lệnh top của Linux là một chương trình giám sát hiệu suất được nhiều quản trị viên hệ thống sử dụng thường xuyên để giám sát hiệu suất Linux và nó có sẵn trong nhiều  hệ điều hành giống Linux/Unix.

Lệnh top được sử dụng để hiển thị tất cả các tiến trình thời gian thực đang chạy và đang hoạt động trong một danh sách được sắp xếp và cập nhật nó thường xuyên. Nó hiển thị mức sử dụng CPU , Mức sử dụng bộ nhớ , Bộ nhớ hoán đổi , Kích thước bộ đệm , Kích thước bộ đệm , PID tiến trình , Người dùng , Lệnh…

Nó cũng cho thấy mức sử dụng bộ nhớ và cpu cao của các tiến trình đang chạy. Lệnh top rất hữu ích cho quản trị viên hệ thống để theo dõi và thực hiện hành động khắc phục khi được yêu cầu. Hãy xem lệnh top đang hoạt động.

# top

2. VmStat – Thống kê bộ nhớ ảo

Lệnh VmStat được sử dụng để hiển thị số liệu thống kê về bộ nhớ ảo , luồng nhân , đĩa , quy trình hệ thống , khối I/O , ngắt , hoạt động của CPU…

Cài đặt VmStat trên Linux

Theo mặc định, lệnh vmstat không có sẵn trong hệ thống Linux, bạn cần cài đặt gói có tên sysstat (một công cụ giám sát mạnh mẽ) bao gồm chương trình vmstat.

$ sudo yum install sysstat      [On Older CentOS/RHEL & Fedora]
$ sudo dnf install sysstat      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install sysstat  [On Debian/Ubuntu & Mint]
$ sudo pacman -S sysstat        [On Arch Linux]

Cách sử dụng phổ biến của định dạng lệnh vmstat là.

# vmstat

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0  43008 275212   1152 561208    4   16   100   105   65  113  0  1 96  3  0

3. Lsof – Liệt kê các tệp đang mở

Lệnh lsof được sử dụng trong nhiều hệ thống giống Linux/Unix để hiển thị danh sách tất cả các tệp và quy trình đang mở. Các tệp mở bao gồm tệp đĩa, ổ cắm mạng, đường ống (pipe) , thiết bị và quy trình…

Một trong những lý do chính để sử dụng lệnh này là khi không thể ngắt kết nối đĩa và hiển thị lỗi rằng các tệp đang được sử dụng hoặc mở. Với lệnh này, bạn có thể dễ dàng xác định tập tin nào đang được sử dụng.

Định dạng phổ biến nhất cho lệnh lsof là.

# lsof

COMMAND     PID   TID TASKCMD             USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
systemd       1                           root  cwd       DIR                8,2      224        128 /
systemd       1                           root  rtd       DIR                8,2      224        128 /
systemd       1                           root  txt       REG                8,2  1567768  134930842 /usr/lib/systemd/systemd
systemd       1                           root  mem       REG                8,2  2714928  134261052 /usr/lib64/libm-2.28.so
systemd       1                           root  mem       REG                8,2   628592  134910905 /usr/lib64/libudev.so.1.6.11
systemd       1                           root  mem       REG                8,2   969832  134261204 /usr/lib64/libsepol.so.1
systemd       1                           root  mem       REG                8,2  1805368  134275205 /usr/lib64/libunistring.so.2.1.0
systemd       1                           root  mem       REG                8,2   355456  134275293 /usr/lib64/libpcap.so.1.9.0
systemd       1                           root  mem       REG                8,2   145984  134261219 /usr/lib64/libgpg-error.so.0.24.2
systemd       1                           root  mem       REG                8,2    71528  134270542 /usr/lib64/libjson-c.so.4.0.0
systemd       1                           root  mem       REG                8,2   371736  134910992 /usr/lib64/libdevmapper.so.1.02
systemd       1                           root  mem       REG                8,2    26704  134275177 /usr/lib64/libattr.so.1.1.2448
systemd       1                           root  mem       REG                8,2  3058736  134919279 /usr/lib64/libcrypto.so.1.1.1c
...

4. Tcpdump – Trình phân tích gói mạng

Lệnh tcpdump là một trong những chương trình phân tích gói mạng dòng lệnh hoặc chương trình đánh hơi gói được sử dụng rộng rãi nhất , được sử dụng để chụp hoặc lọc các gói TCP/IP được nhận hoặc truyền trên một giao diện cụ thể qua mạng.

Nó cũng cung cấp một tùy chọn để lưu các gói đã chụp trong một tệp để phân tích sau. Tcpdump gần như có sẵn trong tất cả các bản phân phối chính của Linux.

# tcpdump -i enp0s3

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
10:19:34.635893 IP tecmint.ssh > 192.168.0.124.45611: Flags [P.], seq 2840044824:2840045032, ack 4007244093
10:19:34.636289 IP 192.168.0.124.45611 > tecmint.ssh: Flags [.], ack 208, win 11768, options 
10:19:34.873060 IP _gateway.57682 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.873104 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.895453 IP _gateway.48953 > tecmint.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:34.895501 IP tecmint > _gateway: ICMP tecmint udp port netbios-ns unreachable, length 86
10:19:34.992693 IP 142.250.4.189.https > 192.168.0.124.38874: UDP, length 45
10:19:35.010127 IP 192.168.0.124.38874 > 142.250.4.189.https: UDP, length 33
10:19:35.135578 IP _gateway.39383 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.135586 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
10:19:35.155827 IP _gateway.57429 > 192.168.0.124.netbios-ns: NBT UDP PACKET(137): QUERY; REQUEST; UNICAST
10:19:35.155835 IP 192.168.0.124 > _gateway: ICMP 192.168.0.124 udp port netbios-ns unreachable, length 86
...

5. Netstat – Thống kê gói mạng

Netstat là một công cụ dòng lệnh để theo dõi số liệu thống kê gói mạng đến và đi cũng như thống kê giao diện. Đây là một công cụ rất hữu ích cho mọi quản trị viên hệ thống để theo dõi hiệu suất mạng và khắc phục sự cố liên quan đến mạng.

# netstat -a | more

Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:sunrpc          0.0.0.0:*               LISTEN
tcp        0      0 tecmint:domain          0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN
tcp        0      0 localhost:postgres      0.0.0.0:*               LISTEN
tcp        0      0 tecmint:ssh             192.168.0.124:45611     ESTABLISHED
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN
tcp6       0      0 localhost:postgres      [::]:*                  LISTEN
udp        0      0 0.0.0.0:mdns            0.0.0.0:*
udp        0      0 localhost:323           0.0.0.0:*
udp        0      0 tecmint:domain          0.0.0.0:*
u\';lkjh?.mvbnm,./

6522+
++-z
dp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED

Mặc dù netstat ngày nay không còn được dùng nữa vì lệnh ss , nhưng bạn vẫn có thể khám phá netstat trong bộ công cụ mạng của mình

# ss

6. Htop – Giám sát quy trình Linux

Lệnh htop là một công cụ giám sát quy trình Linux thời gian thực và tương tác tiên tiến hơn nhiều, rất giống với lệnh hàng đầu của Linux nhưng nó có một số tính năng phong phú như giao diện thân thiện với người dùng để quản lý các quy trình, phím tắt , chế độ xem dọc và ngang của các quy trình, và nhiều tính năng nữa.

# htop
Htop – Trình xem quy trình hệ thống Linux

htop là một công cụ của bên thứ ba, không đi kèm với hệ thống Linux, bạn cần cài đặt nó bằng công cụ quản lý gói hệ thống của mình.

Cách cài đặt htop trên Linux

Các gói htop hầu hết có sẵn trong tất cả các bản phân phối Linux hiện đại và có thể được cài đặt bằng trình quản lý gói mặc định từ hệ thống của bạn.

Cài đặt Htop trên Debian

sudo apt install htop

Cài đặt Htop trên Ubuntu

$ sudo apt install htop

Cài đặt Htop trên Linux Mint

$ sudo apt install htop

Cài đặt Htop trên Fedora

$ sudo dnf install htop

Cài đặt Htop trên CentosOS 7/8

$ sudo yum install epel-release
$ sudo yum install htop

Cài đặt Htop trên RHEL 7/8

--------- RHEL 8 --------- 
$ sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo yum install htop

--------- RHEL 7 ---------
$ sudo yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo yum install htop

Cài đặt Htop trên Rocky Linux/AlmaLinux

$ sudo yum install epel-release
$ sudo yum install htop

Cài đặt Htop trên Gentoo

$ emerge sys-process/htop

Cài đặt Htop trên Arch Linux

$ pacman -S htop

Cài đặt Htop trên OpenSUSE

sudo zypper install htop

7. Iotop – Giám sát I/O Disk Linux

Lệnh iotop cũng rất giống với lệnh top và chương trình htop, nhưng nó có chức năng kế toán để giám sát và hiển thị các tiến trình và I/O trên Đĩa theo thời gian thực .

Công cụ iotop rất hữu ích trong việc tìm kiếm quy trình chính xác và việc đọc/ghi đĩa được sử dụng nhiều của các quy trình.

Cài đặt Iotop trên Linux

Theo mặc định, lệnh iotop không có sẵn trong Linux và bạn cần cài đặt nó

$ sudo yum install iotop             [Trên CentOS/RHEL & Fedora phiên bản cũ]
$ sudo dnf install iotop               [Trên CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install iotop         [Trên Debian/Ubuntu & Mint]
$ sudo pacman -S iotop             [Trên Arch Linux]

Cách sử dụng phổ biến của định dạng lệnh iotop là

# iotop
iotop – Theo dõi mức sử dụng IO của đĩa Linux

8. Iostat – Thống kê đầu vào/đầu ra

iostat là một công cụ đơn giản sẽ thu thập và hiển thị số liệu thống kê về thiết bị lưu trữ đầu vào và đầu ra của hệ thống. Công cụ này thường được sử dụng để theo dõi các vấn đề về hiệu suất của thiết bị lưu trữ bao gồm các thiết bị , đĩa cục bộ và các đĩa từ xa như NFS .

Cài đặt Iostat trên Linux

Để nhận được lệnh iostat , bạn cần cài đặt gói có tên sysstat

$ sudo yum install sysstat               [Trên CentOS/RHEL &  phiên bản Fedora cũ]
$ sudo dnf install sysstat                 [Trên CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install sysstat           [Trên  Debian/Ubuntu & Mint]
$ sudo pacman -S sysstat               [Trên Arch Linux]

Cách sử dụng phổ biến của định dạng lệnh iostat là:

# iostat

Linux 4.18.0-193.el8.x86_64 (vntips) 05/04/2021 _x86_64_ (1 CPU)

avg-cpu: %user %nice %system %iowait %steal %idle
           0,21 0,03 0,59 2,50 0,00 96,67

Tốc độ thiết bị kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 3,95 83,35 89,63 1782431 1916653

9. IPTraf – Giám sát mạng LAN IP thời gian thực

IPTraf là tiện ích giám sát mạng thời gian thực (IP LAN) dựa trên bảng điều khiển nguồn mở dành cho Linux. Nó thu thập nhiều loại thông tin như trình giám sát lưu lượng IP truyền qua mạng, bao gồm thông tin cờ TCP, chi tiết ICMP, phân tích lưu lượng TCP/UDP, gói kết nối TCP và số byte.

Tiện ích này cũng thu thập thông tin về thống kê giao diện chung và chi tiết của TCP, UDP, IP, ICMP, non-IP, lỗi tổng kiểm tra IP, hoạt động giao diện…

Giám sát mạng IP IPTraf

10. Psacct hoặc Acct – Theo dõi hoạt động của người dùng

Các công cụ psacct hoặc acct rất hữu ích để theo dõi hoạt động của từng người dùng trên hệ thống. Cả hai daemon đều chạy ở chế độ nền và theo dõi chặt chẽ hoạt động chung của từng người dùng trên hệ thống cũng như những tài nguyên nào đang được họ tiêu thụ.

Những công cụ này rất hữu ích cho quản trị viên hệ thống để theo dõi hoạt động của từng người dùng như họ đang làm gì, họ đưa ra lệnh gì, họ sử dụng bao nhiêu tài nguyên, thời gian họ hoạt động trên hệ thống…

11. Monit – Giám sát dịch vụ và quy trình Linux

Monit là một tiện ích giám sát quy trình dựa trên web và mã nguồn mở miễn phí, tự động giám sát và quản lý các quy trình, chương trình, tệp, thư mục, quyền, tổng kiểm tra và hệ thống tệp của hệ thống.

Nó giám sát các dịch vụ như Apache, MySQL, Mail, FTP, ProFTP, Nginx, SSH… Trạng thái hệ thống có thể được xem từ dòng lệnh hoặc sử dụng giao diện web của chính nó.

Hệ thống giám sát Monit Linux

12. NetHogs – Giám sát băng thông mạng trên mỗi quy trình

NetHogs là một chương trình mã nguồn mở nhỏ xinh xắn (tương tự như lệnh ‘top‘) giữ một tab trên mỗi hoạt động mạng xử lý trên hệ thống của bạn. Nó cũng theo dõi băng thông lưu lượng mạng thời gian thực được sử dụng bởi từng chương trình hoặc ứng dụng.

# nethogs
Nethogs Giám sát lưu lượng mạng trong Linux

13. iftop – Giám sát băng thông mạng

iftop là một tiện ích giám sát hệ thống nguồn mở miễn phí dựa trên thiết bị đầu cuối khác hiển thị danh sách sử dụng băng thông mạng (máy chủ nguồn và đích) được cập nhật thường xuyên đi qua giao diện mạng trên hệ thống của bạn.

iftop tương tự như ‘ top ‘ trong bối cảnh sử dụng mạng, giống như cách ‘ top ‘ cung cấp thông tin chi tiết về việc sử dụng CPU.

iftop thuộc dòng công cụ giám sát mạng ‘hàng đầu’ được đánh giá cao. Được thiết kế đặc biệt để quan sát giao diện mạng do người dùng chọn, nó hiển thị dữ liệu thời gian thực về việc sử dụng băng thông hiện tại giữa hai máy chủ được chỉ định.

# iftop

14. Monitorix – Giám sát hệ thống và mạng

Monitorix là một tiện ích nhẹ miễn phí được thiết kế để chạy và giám sát tài nguyên mạng và hệ thống nhiều nhất có thể trong các máy chủ Linux/Unix.

Nó có một máy chủ web HTTP tích hợp thường xuyên thu thập thông tin hệ thống và mạng và hiển thị chúng dưới dạng biểu đồ. Nó theo dõi mức sử dụng và tải trung bình của hệ thống, cấp phát bộ nhớ, tình trạng trình điều khiển đĩa, dịch vụ hệ thống, cổng mạng, thống kê thư (Sendmail , Postfix , Dovecot…), thống kê MySQL…

Nó được thiết kế để giám sát hiệu suất tổng thể của hệ thống và giúp phát hiện các lỗi, tắc nghẽn, hoạt động bất thường…

15. Arpwatch – Giám sát hoạt động Ethernet

Arpwatch là một loại chương trình được thiết kế để giám sát Độ phân giải địa chỉ (thay đổi địa chỉ MAC và IP) của lưu lượng mạng Ethernet trên mạng Linux.

Nó liên tục theo dõi lưu lượng Ethernet và tạo ra nhật ký thay đổi cặp địa chỉ IP và MAC cùng với dấu thời gian trên mạng. Nó cũng có tính năng gửi thông báo qua email cho quản trị viên khi ghép nối được thêm hoặc thay đổi. Nó rất hữu ích trong việc phát hiện giả mạo ARP trên mạng.

16. Suricata – Giám sát an ninh mạng

Suricata là Hệ thống giám sát ngăn chặn và phát hiện xâm nhập và bảo mật mạng mã nguồn mở hiệu suất cao dành cho Linux , FreeBSD và Windows

Nó được thiết kế và sở hữu bởi một tổ chức phi lợi nhuận OISF (Open Information Security Foundation).

17. VnStat PHP – Theo dõi băng thông mạng

VnStat PHP là một ứng dụng giao diện người dùng dựa trên web dành cho công cụ mạng phổ biến nhất có tên là “ vnstat “. VnStat PHP giám sát việc sử dụng lưu lượng mạng ở chế độ đồ họa độc đáo.

Nó hiển thị tổng mức sử dụng lưu lượng truy cập mạng IN và OUT trong các báo cáo tóm tắt hàng giờ, hàng ngày, hàng tháng và đầy đủ.

18. Nagios – Giám sát mạng/máy chủ

Nagios là hệ thống giám sát mạnh mẽ mã nguồn mở hàng đầu cho phép quản trị viên mạng/hệ thống xác định và giải quyết các sự cố liên quan đến máy chủ trước khi chúng ảnh hưởng đến các quy trình kinh doanh chính.

Với hệ thống Nagios, quản trị viên có thể giám sát Linux, Windows, Bộ chuyển mạch, Bộ định tuyến và Máy in từ xa trên một cửa sổ duy nhất. Nó hiển thị các cảnh báo quan trọng và cho biết liệu có sự cố xảy ra trong mạng/máy chủ của bạn hay không, điều này gián tiếp giúp bạn bắt đầu quá trình khắc phục trước khi chúng xảy ra.

19. Nmon – Giám sát hiệu suất Linux

Công cụ Nmon (viết tắt của Nigel’s Performance Monitor), được sử dụng để giám sát tất cả các tài nguyên Linux như CPU, Bộ nhớ, Mức sử dụng đĩa, Mạng, Các quy trình hàng đầu, NFS, Kernel… Công cụ này có hai chế độ: Chế độ trực tuyến và Chế độ chụp.

Chế độ trực tuyến được sử dụng để theo dõi thời gian thực và Chế độ chụp được sử dụng để lưu trữ đầu ra ở định dạng CSV để xử lý sau.

Nmon – Công cụ giám sát hiệu suất Linux

20. Collectl – Công cụ giám sát hiệu suất tất cả trong một

Collectl là một tiện ích dựa trên dòng lệnh mạnh mẽ và giàu tính năng khác, có thể được sử dụng để thu thập thông tin về tài nguyên hệ thống Linux như mức sử dụng CPU, bộ nhớ, mạng, nút, quy trình, nfs, TCP, socket…

Giám sát thu thập

Chúng tôi muốn biết bạn sử dụng loại chương trình giám sát nào để giám sát hiệu suất của các máy chủ Linux của mình. Nếu chúng tôi bỏ lỡ bất kỳ công cụ quan trọng nào mà bạn muốn chúng tôi đưa vào danh sách này, vui lòng để lại bình luận và đừng quên chia sẻ các công cụ này.

51 lượt xem | 0 bình luận

Avatar

Xem nhanh