系统管理员的 10 大 Linux 性能分析命令
Linux 系统管理员需要一套强大的工具来有效地监控和优化他们的系统。深入了解性能命令可以帮助您快速识别和解决问题,确保平稳运行。在本文中,我们将深入研究面向系统管理员的 10 大 Linux 性能命令,概述每个命令的功能和用例。
系统管理员的 10 大 Linux 性能分析命令
作为一名系统管理员,多年来,我整理了一份我每天使用的 10 大 Linux 性能命令列表。在这篇博文中,我将与您分享我的最爱,并解释为什么我认为它们不可或缺。所以,事不宜迟,让我们开始吧!
1. top
“top”命令是我最喜欢的,我相信你们中的许多人都会同意。它提供了系统进程、内存使用情况和 CPU 负载的实时动态视图。老实说,我喜欢它的简单性以及我可以轻松识别资源匮乏的进程。
虽然有些人更喜欢“htop”,因为它的颜色编码显示和其他功能,但我是经典“top”命令的忠实粉丝。
要开始使用“top”命令,只需在终端中键入“top”并按 Enter。您将看到正在运行的进程、它们的资源使用情况和各种系统统计信息的实时视图。这有助于您快速识别占用大量 CPU 或内存资源的进程。
top
2. iostat
我一直发现磁盘性能是系统性能的一个重要方面。这就是“iostat”的用武之地。它非常适合监控磁盘 I/O 并帮助我发现潜在的瓶颈。
“iostat”命令是“sysstat”包的一部分,它并不总是预先安装在 Linux 发行版上。以下是在一些流行的 Linux 发行版上安装“sysstat”的方法:
Debian 和 Ubuntu:
要在 Debian 和 Ubuntu 上安装“sysstat”,请打开终端并运行以下命令:
sudo apt-get install sysstat
Red Hat、CentOS 和 Fedora:
要在基于 Red Hat 的系统上安装“sysstat”,请打开终端并运行以下命令:
sudo yum install sysstat
Arch Linux:
要在 Arch Linux 上安装“sysstat”,请打开终端并运行以下命令:
sudo pacman -S sysstat
SUSE 和 openSUSE:
要在 SUSE 和 openSUSE 上安装“sysstat”,请打开终端并运行以下命令:
sudo zypper install sysstat
安装“sysstat”后,您可以使用“iostat”命令来监控磁盘 I/O 统计信息。如果您需要提升权限来运行命令,请记住使用“sudo”或切换到 root 用户。但是,我确实希望默认输出更加用户友好。但是,嘿,它完成了工作,这才是最重要的。
要每 5 秒显示一次所有设备的磁盘 I/O 统计信息,请使用以下命令。这有助于您监控磁盘性能并识别瓶颈。
iostat -d 5
3.vmstat
“vmstat”是我非常依赖的另一个命令。它报告虚拟内存统计信息,这有助于我了解系统如何使用内存和交换空间。我发现它在处理内存密集型应用程序时特别有用。
我唯一不喜欢的是它产生的有点神秘的输出。但是一旦掌握了它,它就是一个强大的工具。要每 3 秒显示一次虚拟内存统计信息,请使用以下命令。这有助于您了解系统如何使用内存和交换空间,这在处理内存密集型应用程序时很有用。
vmstat 3
4.free
“free”命令非常适合快速了解系统的内存使用情况。它简单,易于阅读,并且直截了当。我喜欢用它来检查我的服务器是否有足够的空闲内存。
我对“免费”的唯一抱怨是缺少定制选项,但考虑到它的目的,这是一个小问题。要以人类可读的格式显示内存使用情况,请使用以下命令。这使您可以快速概览总内存、已用内存和可用内存以及交换空间。
free -h
5. sar
“sar”是性能监控的瑞士军刀。它可以提供有关系统性能的几乎所有方面的信息,从 CPU 使用率到网络活动。我很欣赏它的多功能性以及它收集历史数据的事实,使我能够分析趋势并诊断过去的问题。
不利的一面是,选择的数量之多可能让人不知所措。这是一个强大的工具,但需要耐心才能掌握。要显示当天的平均 CPU 使用率,请使用以下命令。这有助于您分析 CPU 使用趋势并通过收集历史数据诊断过去的问题。
Sar 也是 systat 包的一部分。在运行下一个命令之前,请参考“iostat”部分在您的 Linux 系统上安装 systat。
sar-u
运行 sar -u 命令后是否出现此错误?
无法打开/ var /log/sysstat/sa28: 没有那个文件或目录 请检查是否 启用了数据收集
此错误消息表示未收集或存储“sar”所需的系统活动数据。要解决此问题,我们需要启用数据收集并正确配置 sysstat 包。
6. mpstat
作为管理多核服务器的系统管理员,“mpstat”是救星。它显示了每个处理器核心的利用率,这有助于我了解系统的负载分布。我发现它对于调整需要针对多核系统进行优化的应用程序特别有用。
我真的找不到这个的任何错误 – 它正是我需要它做的!要显示每个处理器内核的 CPU 利用率,请使用以下命令。这有助于您了解系统的负载分布,这对于调整针对多核系统优化的应用程序特别有用。
mpstat -P ALL
7.netstat
网络问题确实令人头疼,这就是“netstat”派上用场的地方。这是我监控网络连接、路由表和接口统计信息的首选命令。我必须承认,我对此情有独钟——它使我免于无数小时的故障排除。
唯一的缺点是它被弃用,取而代之的是“ss”,但旧习惯很难改掉,我仍然更喜欢使用“netstat”。
要显示所有活动的网络连接及其各自的状态,请使用以下命令。这有助于您监控网络连接并识别潜在问题。
“netstat”命令是“net-tools”包的一部分,它并不总是预先安装在 Linux 发行版上。以下是在一些流行的 Linux 发行版上安装“net-tools”的方法:
Debian 和 Ubuntu:
要在 Debian 和 Ubuntu 上安装“net-tools”,请打开终端并运行以下命令:
sudo apt-get install net-tools
Red Hat、CentOS 和 Fedora:
要在基于 Red Hat 的系统上安装“net-tools”,请打开终端并运行以下命令:
sudo yum install net-tools
Arch Linux:
要在 Arch Linux 上安装“net-tools”,请打开终端并运行以下命令:
sudo pacman -S net-tools
SUSE 和 openSUSE:
要在 SUSE 和 openSUSE 上安装“net-tools”,请打开终端并运行以下命令:
sudo zypper install net-tools
安装“net-tools”后,您可以使用“netstat”命令显示活动的网络连接及其状态。如果您需要提升权限来运行命令,请记住使用“sudo”或切换到 root 用户。
netstat -tunap
8. SS
说到“ss”,它是“netstat”的当之无愧的继承者。它更快、更强大,提供有关套接字和网络连接的详细信息。我正在慢慢地适应它,并且必须承认随着时间的推移它已经在我身上成长了。
这只是习惯新语法的问题,一旦你习惯了,“ss”就可以成为你工具包的一个有价值的补充。
要显示有关套接字和网络连接的详细信息,请使用以下命令。它类似于 netstat,但速度更快,功能更强大。
ss-tunap
9.lsof
‘lsof’ 是一个被低估的宝石。它代表“列出打开的文件”,但它的作用远不止于此。它可以帮助您追踪哪些进程正在使用特定文件、目录或套接字,这在调试棘手问题时非常有用。
唯一的缺点是输出可能非常冗长,可能需要一些时间才能找到您需要的信息。但总的来说,这是一个我不想没有的强大命令。
要显示打开的文件列表和使用它们的进程,请使用以下命令。这在调试与文件使用相关的问题时很有用,例如识别已锁定特定文件的进程。
lsof
10. strace
最后但并非最不重要的一点是,“strace”是调试应用程序问题的救星。它跟踪系统调用和信号,使您能够准确地看到进程在做什么。当所有其他调试方法都失败时,我已经记不清有多少次这个命令救了我。
然而,“strace”并非没有缺陷。它可能很慢,并且输出可能难以破译。但是当您需要它时,没有什么可以替代它提供的见解。
要跟踪特定进程的系统调用和信号,请使用以下命令。这有助于您了解进程在做什么,这在调试应用程序问题时非常有用。
strace -p [PID]
将 [PID] 替换为您要跟踪的进程的进程 ID。
有几种方法可以查看进程的 PID。我建议使用 ps 命令进行快速输出。
ps -aux
实际示例:监控和排除 Linux 服务器上的高 CPU 使用率。
假设您是一名系统管理员,收到了有关 Linux 服务器上 CPU 使用率过高的警报。您需要确定消耗最多 CPU 资源的进程并解决问题。以下是如何使用上面提到的一些命令来完成此任务:
1.使用’top’来识别资源匮乏的进程:
运行“top”命令并查找占用大量 CPU 资源的进程。按“M”按内存使用情况对进程进行排序,这有助于识别可能导致高 CPU 使用率的潜在内存泄漏进程。
2. 使用“mpstat”按处理器核心分析 CPU 利用率:
运行“mpstat”以按处理器核心获取 CPU 利用率的细目分类。这有助于您确定高 CPU 使用率是由特定核心还是特定进程引起的。
3. 使用“strace”来跟踪进程进行的系统调用:
如果您怀疑某个特定进程导致 CPU 使用率过高,请使用“strace”来跟踪其系统调用和信号。这可以帮助您识别任何需要很长时间才能完成的系统调用,这可能是导致 CPU 使用率过高的原因。
4.使用’sar’收集历史数据:
如果高 CPU 使用率是间歇性的,请使用“sar”收集历史数据并分析趋势。这有助于您确定高 CPU 使用率是在特定时间发生还是一直存在。
通过结合使用这些命令,您可以快速识别导致高CPU使用率的进程并解决问题。您还可以使用“iostat”或“vmstat”等其他命令来监视其他系统资源并识别潜在的瓶颈。
使用 Linux 性能命令的有用提示
1.练习,练习,再练习:
您使用这些命令的次数越多,您就会越熟悉它们。尝试在不同的场景中运行它们,并试验它们的各种选项以更好地了解它们的工作原理。
2.自定义输出:
其中许多命令以默认格式提供输出,但您可以自定义输出以满足您的需要。例如,您可以将“-h”选项与“free”结合使用,以人类可读的格式显示内存使用情况,或将“-p”与“netstat”结合使用,以显示使用特定端口的进程的 PID。
3.多个命令一起使用:
许多系统管理任务要求您同时监视多个系统资源。您可以同时使用多个命令,例如“top”和“vmstat”,以更好地全面了解系统性能。
4.使用命令行选项:
其中一些命令具有范围广泛的选项,您可以使用这些选项来自定义它们的行为。例如,您可以将“-A”选项与“mpstat”结合使用来显示所有处理器内核的 CPU 使用率,或者将“-n”选项与“sar”结合使用来监控网络统计信息。
5.记录一切:
在解决问题或监控系统性能时,记录您的发现非常重要。这有助于您跟踪随时间发生的变化并识别重复出现的问题。您可以使用“grep”或“awk”等工具从这些命令的输出中提取特定数据并将其存储在文件中以供将来参考。
通过遵循这些提示,您可以更加熟练地使用这些命令,并更好地管理和优化您的 Linux 系统。
结论
这就是我为系统管理员准备的 10 大 Linux 性能命令,以及我的个人观点、好恶。当然,每个系统管理员都有自己的偏好,此列表可能无法涵盖您需要的所有内容。但这些是我开始依赖的命令,我相信它们为任何希望监控和优化其 Linux 系统的人奠定了坚实的基础。