在终端中监控 Linux 性能的 6 个最佳命令行工具
想要跟踪和调试 Linux 系统资源、存储和网络相关问题吗?开始使用最好的 Linux 性能监控工具。
Linux 是一个开源的、类似 UNIX 的操作系统,驱动着互联网的很大一部分。 Linux 内核位于许多新技术和平台的基础上,例如 Android、SDN 控制器、容器及其作为网络操作系统和服务器的服务。这些高要求需要托管应用程序、网站和底层 Linux 操作系统的适当管理、可靠性和可用性。
该指南涵盖了最好的命令行 Linux 性能监控工具。了解这些 CLI 工具如何帮助解决系统、网络、CPU 和磁盘瓶颈。
1. 顶部
top 命令根据 CPU 时间消耗列出实时活动进程,每五秒更新一次。它在命令输出的顶部显示一般信息,其中包含与当前运行的进程、系统正常运行时间/负载、RAM 和交换空间相关的数据。在一般信息之后,该命令显示带有 PID、实际内存和 CPU/内存使用百分比的进程列表。
您可以利用的常见做法是列出消耗过多 CPU 和内存资源的进程。如果某个进程消耗过多内存或达到最大 CPU 利用率,作为系统管理员,您可以根据分配的 PID 终止该进程或将其设置为低优先级。
此外,top 命令还允许您根据各种其他指标(例如按内存使用情况、进程 PID 和运行时间等)对其输出进行排序,从而显示和修改正在运行的进程。
2. TCP转储
TCPdump 是 Linux 网络管理员最常用的网络故障排除实用程序。它是一个开源命令行数据包嗅探器/分析器,可捕获通过指定接口在网络上传输/接收的 TCP/IP 数据包。
该工具是 Linux 发行版的原生工具,具有多种功能,包括各种过滤器和标志。使用以下命令检查它是否已经可用:
which tcpdump
如果没有,请使用您的发行版的包管理器进行安装。对于 Ubuntu Linux:
sudo apt-get update
sudo apt-get install tcpdump
您可以列出可用的接口来开始网络捕获过程:
sudo tcpdump -D
tcpdump 实用程序允许您通过各种过滤器组合捕获、写入和读取流量,以仅存储所需的详细信息,例如特定端口上的流量以及进出 pcap 文件的协议。一些有用的命令如下:
sudo tcpdump -c 10 -i ens33
sudo tcpdump -i ens33 dst port 22
sudo tcpdump -i ens33 host 10.0.1.15 -w /tmp/capture_1.pcap
sudo tcpdump -w /tmp/capture_1.pcap
要充分利用 tcpdump,您应该事先对数据包分析有一定的了解。
3. 网络统计
顾名思义,它是一个功能强大的网络统计命令行实用程序,可提供详细的网络配置和故障排除相关信息。它显示传入/传出连接、接口统计信息、侦听/打开端口、路由表等。
您可以通过安装 net-tools 包来使用此实用程序:
sudo apt-get update -y && apt-get install net-tools -y
您可以检查根据协议排序的网络统计信息,以借助 -s 标志来识别和解决问题,如下所示:
netstat -s | less
同样,您可以提取并查看特定(仅限 TCP)协议的统计信息,如下所示:
netstat -st | less
另一个方便的故障排除技巧是通过 PID 查看服务:
netstat -tp | less
尽管该工具已被弃用而不是 ss/ip 路由命令,但它是任何 Linux 网络管理员的武器库中始终可用的强大且易于使用的工具。
4. 顶峰
Htop 是 Linux 中另一个用于监视系统进程和存储的命令行实用程序,与 top 命令不同,它提供了交互式用户界面。作为 top 命令的替代方案,它将输出分为三个主要部分,并以清晰的视觉效果表示 CPU、内存和交换部分。
它支持快捷键,并允许您垂直和水平滚动界面以查看针对每个进程的命令。与 top 工具不同,它并非在所有 Linux 发行版中默认可用,需要通过系统的包管理器进行安装。
最重要的是,它允许您杀死系统进程或重新确定系统进程的优先级,而无需离开 htop 界面并使用进程 PID,因为它支持鼠标操作。
5. 帐户/Psacct
Acct 或 psacct 是 Linux 等多用户环境的理想程序,因为它允许您监视用户和应用程序活动状态。用户活动监控工具在后台运行,以跟踪您的应用程序活动和资源消耗。显示用户访问服务器的时间、使用的命令以及正在运行的进程。
要使用该程序,请通过程序包管理器在 Linux 系统上安装该程序。 acct 实用程序要求您通过使用 accton 命令启用该选项来启动记帐过程,并将详细信息存储在 /var/account/pacct 文件中。
作为命令行工具,您可以将其与 ps 或 who 等其他工具结合使用来识别各种其他与系统资源相关的问题。
6. 物联网
Iotop 是一个基于 Python 的实用程序,它依靠内核记帐功能来监视系统线程和进程的输入/输出利用率。它是一个有用的工具,可以帮助您识别磁盘使用率或输入/输出读取或写入较高的进程。安装此工具并使用 root 权限监控实时 I/O 使用情况。
sudo iotop
Iotop 可以非常方便地识别具有高交换内存消耗和大量磁盘活动的进程。
有效系统监控的更多探索
文章列出了一些高效监控 Linux 系统性能的必备工具。我们涵盖第三方程序的预构建工具:每个工具都有其独特的用例和功能,可密切关注您的系统资源和使用情况。
本文还介绍了如何安装和使用每个实用程序以更好地监控系统。作为初学者,学习这些工具可能是一个陡峭的曲线,但从长远来看,监控 Linux 系统或服务器以实现良好的健康状况和高效的性能是值得的。
作为初学者,学习这些工具可能是一个陡峭的曲线,但从长远来看,监控 Linux 系统或服务器以实现良好的健康状况和高效的性能是值得的。