20个监控linux性能的命令行工具

2022-06-02 15:34:53 浏览数 (1)

1. Top – Linux 进程监控

LinuxTopcommand 是一个性能监控程序,很多系统管理员经常使用它来监控 Linux 性能,它在许多Linux/Unix-like操作系统。

在top 命令在批处理模式下使用“top”按内存使用量查找前 15 个进程")是用来在有序列表中,并定期更新,它显示所有正在运行的和积极的实时进程。它显示CPU usage,Memory usage,Swap Memory,Cache Size,Buffer Size,Process PID,User,Command

它还显示了正在运行的进程的高内存和 CPU 利用率。

代码语言:javascript复制
# top
2. vmstat – 虚拟内存统计

Linuxvmstat命令用于显示统计信息virtual memory,kernel threads,disks,system processes,I/O blocks,interrupts,CPU activity,以及更多。

在 Linux 中安装 vmstat

默认情况下 vmstat 命令在 Linux 系统下不可用,你需要安装一个名为sysstat,包括一个 vmstat 程序。

代码语言:javascript复制
$ 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]

vmstat 命令格式的常见用法是。

代码语言:javascript复制
# 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 – 列出打开的文件

lsof command被用于许多Linux/Unix-like系统显示所有打开的文件和进程的列表。包含的打开文件是disk files,network sockets,pipes,devices,processes.

使用此命令的主要原因之一是无法卸载磁盘并显示正在使用或打开文件的错误。使用此命令,你可以轻松识别正在使用的文件。

最常见的格式lsof命令是。

代码语言:javascript复制
# 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——网络数据包分析器

tcpdump命令是使用最广泛的命令行之一network packet analyzer或者packets sniffer用于捕获或过滤的程序TCP/IP通过网络在特定接口上接收或传输的数据包。

代码语言:javascript复制
# 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 – 网络统计

netstat是一个用于监控的命令行工具incomingoutgoing network数据包统计以及接口统计。它是每个系统管理员监控网络性能和解决网络相关问题的非常有用的工具。

代码语言:javascript复制
# 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:*
udp        0      0 0.0.0.0:bootps          0.0.0.0:*
udp        0      0 tecmint:bootpc          _gateway:bootps         ESTABLISHED
...
6. Htop——Linux 进程监控

htop是一个非常先进的交互式和实时 Linux 进程监控工具,它与 Linux 非常相似[top command]但它有一些丰富的功能,比如user-friendly interface to manage processes,shortcut keys,vertical and horizontal views of the processes,以及更多。

代码语言:javascript复制
# htop

htop是第三方工具,Linux 系统不自带,需要使用系统包管理工具安装。

7. iotop – 监控 Linux 磁盘 I/O

iotop也非常类似于top commandhtop program,但具有记账功能,实时监控显示Disk I/Oprocesses.

iotop 工具对于查找进程的确切进程和高使用磁盘读 / 写非常有用。

在 Linux 中安装 Iotop

默认情况下,iotop命令在 Linux 下不可用

代码语言:javascript复制
$ sudo yum install iotop      [On Older CentOS/RHEL & Fedora]
$ sudo dnf install iotop      [On CentOS/RHEL/Fedora/Rocky Linux & AlmaLinux]
$ sudo apt-get install iotop  [On Debian/Ubuntu & Mint]
$ sudo pacman -S iotop        [On Arch Linux]

iotop 命令格式的常见用法是。

代码语言:javascript复制
# iotop
8. Iostat – 输入 / 输出统计

iostat是一个简单的工具,将收集和显示系统inputoutput存储设备统计。此工具通常用于跟踪存储设备性能问题,包括devices,local disks,remote disksNFS.

在 Linux 中安装 Iostat

为了iostat命令,你需要安装一个名为sysstat`

代码语言:javascript复制
$ 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]

iostat 命令格式的常见用法是。

代码语言:javascript复制
# iostat

Linux 4.18.0-193.el8.x86_64 (tecmint)   04/05/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

Device             tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
sda               3.95        83.35        89.63    1782431    1916653
9. IPTraf – 实时 IP LAN 监控

IPTraf是一个开源的基于控制台的实时网络(IP LAN) 监视应用程序Linux.它收集各种信息,例如通过网络传递的[IP 流量监视器,包括 TCP 标志信息、ICMP 详细信息、TCP/UDP 流量故障、TCP 连接数据包和字节计数。

它还收集 TCP、UDP、IP、ICMP、非 IP、IP 校验和错误、接口活动等的一般和详细接口统计信息。

10. Psacct 或 Acct – 监控用户活动

psacct或者acct工具对于监控每个用户在系统上的活动非常有用。两个守护进程都在后台运行,密切关注系统上每个用户的整体活动以及他们消耗的资源。

这些工具对于系统管理员跟踪每个用户的活动非常有用,比如他们在做什么,他们发出了什么命令,他们使用了多少资源,他们在系统上活跃了多长时间等等。

11. Monit – Linux 进程和服务监控

monit是一个免费的开源和基于 Web 的进程监督应用程序,可自动监视和管理系统进程、程序、文件、目录、权限、校验和和文件系统。

它监控 Apache、MySQL、Mail、FTP、ProFTP、Nginx、SSH 等服务。可以从命令行或使用其自己的 Web 界面查看系统状态。

image-20210908215510258

12. NetHogs – 监控每个进程的网络带宽

NetHogs是一个开源的不错的小程序(类似于 Linuxtop command),它会在你的系统上保留每个进程网络活动的标签。它还跟踪每个程序或应用程序使用的实时网络流量带宽.

代码语言:javascript复制
# nethogs

Nethogs 在 Linux 中监控网络流量

image-20210908215626936

13. iftop – 网络带宽监控

iftop是另一个基于终端的免费开源系统监控实用程序,它显示通过系统网络接口的网络带宽利用率(源主机和目标主机)的频繁更新列表。

iftop 被考虑用于网络使用,什么 'top' 用于 CPU 使用率。iftop 是一个 'top' 系列工具,用于监视选定的接口并显示两个主机之间的当前带宽使用情况。

代码语言:javascript复制
# iftop
14. Monitorix – 系统和网络监控

Monitorix是一个免费的轻量级实用程序,旨在尽可能多地运行和监视系统和网络资源Linux/Unix服务器。

它有一个内置的HTTP定期收集系统和网络信息并将其显示在图形中的 Web 服务器。它旨在监控整体系统性能并帮助检测故障、瓶颈、异常活动等。

image-20210908215725216

15. Arpwatch——以太网活动监视器

Arpwatch是一种旨在监视地址解析的程序(MACIP地址更改)的EthernetLinux 网络上的网络流量。

它持续监视以太网流量并生成日志IPMAC地址对随着网络上的时间戳而变化。它还具有在添加或更改配对时向管理员发送电子邮件警报的功能。在检测中非常有用ARP在网络上进行欺骗。

16. Suricata – 网络安全监控

Suricata是一个高性能的开源Network SecurityIntrusion DetectionPrevention Monitoring System为了Linux,FreeBSD,Windows.

它是由一个非营利基金会设计和拥有的OISF(Open Information Security Foundation)。

17. VnStat PHP – 监控网络带宽

VnStat PHP是一个基于 Web 的前端应用程序,用于最流行的网络工具,称为 vnstatVnStat PHP以良好的图形模式监控网络流量使用情况。

它显示总共INOUT网络流量使用情况hourly,daily,monthly,full summary报告。

18. Nagios – 网络 / 服务器监控

Nagios 是领先的开源强大监控系统,它使网络 / 系统管理员能够在服务器相关问题影响主要业务流程之前识别并解决这些问题。

使用 Nagios 系统,管理员可以在单个窗口中监控远程 Linux、Windows、交换机、路由器和打印机。它显示严重警告并指示你的网络 / 服务器是否出现问题,间接帮助你在问题发生之前开始修复过程。

19. Nmon:监控 Linux 性能

Nmon(代表 Nigel 的性能监视器)工具,用于监视所有 Linux 资源,例如 CPU、内存、磁盘使用情况、网络、顶级进程、NFS、内核等等。该工具有两种模式:在线模式和捕获模式。

在线模式用于实时监控,捕获模式用于以 CSV 格式存储输出以供以后处理。

image-20210908215922942

20. Collectl:多合一性能监控工具

Collectl是另一个强大且功能丰富的基于命令行的实用程序,可用于收集有关 Linux 系统资源的信息,例如 CPU 使用率、内存、网络、inode、进程、nfs、TCP、套接字等等。

相关文章

Linux之top命令

linux之iftop命令

Linux之vmstat命令

linux之lsof使用技巧

0 人点赞