首页 > 系统相关 >Linux常用命令之top命令详解

Linux常用命令之top命令详解

时间:2024-12-09 18:58:44浏览次数:11  
标签:top 常用命令 内存 Linux 进程 可以 排序 CPU

top 命令是 Linux 系统中用于实时监控系统性能的一个非常强大的工具。它提供了一个动态的、实时的视图,展示了系统的整体状态,包括 CPU 使用情况、内存使用情况、交换空间使用情况以及正在运行的进程的详细信息。

top 命令的主要功能

  • 实时更新:与静态命令如 ps 不同,top 会每隔几秒自动刷新显示的数据,默认情况下每3秒刷新一次。
  • 系统资源概览:在屏幕顶部展示整个系统的负载、CPU 使用率、内存和交换空间使用情况等信息。
  • 进程排序:可以根据不同的标准(如 CPU 使用率、内存占用等)对进程进行排序。
  • 交互式操作:用户可以通过键盘输入命令来控制 top 的行为,例如终止进程、改变排序方式等。

基本语法

top [options]

常用选项

  • top: 不带任何参数直接启动 top,将显示默认设置下的所有进程。
  • -d <seconds>: 设置刷新间隔时间(秒)。
  • -p <pid>: 只监视特定 PID 的进程。
  • -u <username>: 仅显示指定用户的进程。
  • -b: 批处理模式输出,适合脚本或重定向到文件。

输出解释

当启动 top 后,屏幕会被分割成几个部分:

屏幕顶部 - 系统状态摘要
  1. 当前时间:显示系统时间以及自上次启动以来的时间长度。
  2. 总进程数:显示所有进程的数量,并区分出运行中、休眠、停止和僵尸进程的数量。
  3. CPU 使用情况
    • %us 用户空间内核执行的 CPU 时间百分比。
    • %sy 内核空间内核执行的 CPU 时间百分比。
    • %ni 已经被调整过优先级的进程所使用的 CPU 时间百分比。
    • %id 空闲 CPU 百分比。
    • %wa 等待 I/O 操作完成的时间百分比。
    • %hi 处理硬件中断的时间百分比。
    • %si 处理软件中断的时间百分比。
    • %st 由于虚拟机管理程序偷取的时间(仅适用于虚拟化环境)。
  4. 内存使用情况
    • 总物理内存、已用内存、空闲内存、缓存和缓冲区使用的内存。
  5. 交换空间使用情况
    • 总交换空间、已用交换空间、空闲交换空间、缓存使用的交换空间。
中部:进程列表
  • PID: 进程ID。
  • USER: 进程所有者用户名。
  • PR: 进程优先级。
  • NI: nice值,负值表示更高优先级,正值表示更低优先级。
  • VIRT: 进程使用的虚拟内存总量。
  • RES: 进程使用的实际物理内存(常驻集大小)。
  • SHR: 共享内存大小。
  • S: 进程状态 (D=不可中断, R=运行, S=休眠, T=跟踪/停止, Z=僵尸)。
  • %CPU: 最近一次更新周期内,该进程占用的CPU百分比。
  • %MEM: 进程占用的物理内存百分比。
  • TIME+: 进程累计使用的CPU时间,精确到百秒。
  • COMMAND: 启动该进程的命令名称或命令行。

交互式命令

top 支持一系列交互式命令,可以在运行时通过按键触发。一些常用的命令包括:

  • h?:显示帮助页面。
  • k:终止一个进程(需要输入 PID)。
  • r:更改一个进程的优先级(需要输入 PID 和新的 nice 值)。
  • q:退出 top
  • P:按 CPU 使用率排序。
  • M:按内存使用量排序。
  • T:按运行时间排序。
  • f:进入字段管理器,允许选择显示哪些列。
  • o:设置当前排序规则。
  • ds:更改刷新间隔时间。

自定义 top 行为

你可以通过编辑 .toprc 文件来自定义 top 的外观和行为,或者使用命令行参数来指定某些选项。例如,top -b 可以让 top 以批处理模式运行,这对于脚本编写非常有用。此外,还可以结合 -n 参数来限制输出次数,比如 top -bn 5 将会输出5次后自动退出。

示例用法

  • 批量模式输出到文件:如果你想保存 top 的输出而不是直接显示在终端上,可以使用批处理模式 -b 参数。这使得 top 的输出可以被重定向到文件或者进一步处理中,而无需用户交互。例如,如果你想每隔5秒获取一次快照,并且只执行3次这样的操作,你可以这样做:

    top -b -n 3 > /path/to/outputfile.txt
    
  • 监控特定进程:有时候我们只关心某些特定进程的表现,这时可以通过 -p 参数来限定 top 只跟踪这些进程的状态。例如,假设你知道某个应用程序的 PID 是 9999,那么你可以用如下命令专注于该进程:

    top -p 9999
    
  • 根据用户名筛选进程:当系统中有大量用户时,可能希望快速定位属于某个用户的进程。可以使用 -u 参数加上用户名来进行过滤。例如,要查看所有由 www-data 用户运行的进程,你可以执行:

    top -u www-data
    
  • 查看每个逻辑 CPU 的状态:对于多核或多处理器系统,了解各个核心的工作负荷是非常重要的。按数字键 1 可以让 top 显示每一个逻辑 CPU 的状况。这对于评估硬件资源是否得到了均衡利用特别有用。

  • 自定义字段与排序top 允许用户自定义显示哪些列以及如何对它们进行排序。进入 top 后,按 f 键可以选择要显示的字段;按 o 键则可以设置当前排序规则。例如,如果你想按照内存使用量 (%MEM) 排序,可以在 top 运行期间按 Shift+M

注意事项

  • top 默认每3秒钟刷新一次显示,但可以通过命令行参数或交互命令改变这个频率。
  • top 是一个交互式的工具,允许用户在运行时调整显示的内容和格式。
  • 如果需要将 top 的输出保存到文件或者与其他命令结合使用,可以考虑使用批处理模式 -b 或者导出功能。

示例

top 命令不仅提供了系统的整体性能概览,还可以详细展示每个进程的资源使用情况。通过结合不同的命令行参数和交互式命令,用户可以定制 top 的输出以满足特定的需求。

示例 1: 批处理模式输出到文件

如果想要保存 top 的输出而不是直接显示在终端上,可以使用批处理模式 -b 参数。这使得 top 的输出可以被重定向到文件或者进一步处理中,而无需用户交互。例如,如果想每隔5秒获取一次快照,并且只执行3次这样的操作,可以这样做:

top -b -n 3 > /path/to/outputfile.txt

这里 -b 表示批处理模式,-n 3 指定循环显示的次数为3次,最后通过 > 将输出重定向到指定文件。

示例 2: 监控特定进程

有时候我们只关心某些特定进程的表现,这时可以通过 -p 参数来限定 top 只跟踪这些进程的状态。比如,假设知道某个应用程序的 PID 是 9999,那么可以用如下命令专注于该进程:

top -p 9999

如果需要同时监视多个进程,只需继续添加 -p 参数并跟随相应的 PID 即可。例如:

top -p 9999 -p 10000 -p 10001

这种方法非常适合于调试或分析单个应用的行为。

示例 3: 根据用户名筛选进程

当系统中有大量用户时,可能希望快速定位属于某个用户的进程。可以使用 -u 参数加上用户名来进行过滤。例如,要查看所有由 www-data 用户运行的进程,可以执行:

top -u www-data

此外,在已经启动了 top 后,也可以按下大写的 U 键,然后输入用户名来达到同样的效果。

示例 4: 查看每个逻辑 CPU 的状态

对于多核或多处理器系统,了解各个核心的工作负荷是非常重要的。按数字键 1 可以让 top 显示每一个逻辑 CPU 的状况。这对于评估硬件资源是否得到了均衡利用特别有用。例如:

top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100-$1"%"}'

这段命令首先以非交互模式(-b)运行 top 并立即退出(-n1),接着过滤出 CPU 使用情况行,提取空闲百分比,并计算总的 CPU 使用率。请注意,这里的命令链用于演示目的,实际应用中可以根据需求调整。

示例 5: 自定义字段与排序

top 允许用户自定义显示哪些列以及如何对它们进行排序。进入 top 后,按 f 键可以选择要显示的字段;按 o 键则可以设置当前排序规则。例如,如果想按照内存使用量 (%MEM) 排序,可以在 top 运行期间按 Shift+M

另外,还可以通过命令行参数 -o 来预先设定排序依据。如按 %CPU 排序:

top -o %CPU

或者按内存使用量排序:

top -o %MEM

这种灵活性让用户能够根据自己的偏好调整视图,以便更有效地监控系统性能。

示例 6: 使用 top 和其他命令组合

top 的输出可以直接与其他命令结合使用,例如 grepawk 或者 sed,从而实现更复杂的查询和数据处理。考虑这样一个场景:想找出占用最多内存的前五个 Java 进程,并且只显示它们的 PID 和命令名称。你可以这样做:

top -b -n 1 | grep java | sort -nrk10,10 | head -n 5 | awk '{print $1,$12}'

此命令先以批处理模式获取一次快照,过滤掉非 Java 进程,基于 %MEM 列进行排序,选取前五条记录,最后打印出 PID 和命令名。

总结

top 是一个非常灵活且强大的工具,对于监控和管理系统资源来说至关重要。熟练掌握它的使用方法可以更有效地管理和优化系统性能。如果想要了解更多细节或高级特性,建议查阅官方文档或使用 man top 获取更多信息。

标签:top,常用命令,内存,Linux,进程,可以,排序,CPU
From: https://blog.csdn.net/weixin_56303229/article/details/144270659

相关文章

  • 腾讯通RTX停更后升级指南,兼容移动端及Linux系统
    一、腾讯通RTX继续使用的难题自腾讯通RTX停止更新并下架官网后,其用户面临着一系列无法克服的问题。这不仅包括失去技术支持、版本更新和资源下载的渠道,还涉及以下使用问题:●不兼容国产系统与移动端:腾讯通RTX仅适配Windows和Mac系统,无法支持统信UOS、银河麒麟等国产操作系统以及......
  • Linux中安装配置MongoDB
    最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MongoDB说实话为什么会装MongoDB呢,因为之前因为公司需要做点Nodejs的中间件,我顺手玩了一下MongoDB的CRUD,文档型数据库还是挺有意思的安装环境Ce......
  • Linux-软件包管理器
    包管理器是方便软件安装卸载解决包依赖关系的重要工具centos redhat使用yum包管理器,安装包的格式是 rpmubuntu debian 使用apt包管理器,安装包格式是 debrpm命令常用参数-q查询软件包rpm-qa 查询安装的所有rpm软件包rpm-q软件包名称 查询已安装软件包-i安......
  • TB某宝购物APP设备风控SDK-mtop简单分析
    一、引言mtop风控SDK充当移动端和服务器之间的网关,为app应用提供了大量API接口,实现商品展示、下单、支付等功能的防护。学习研究意义防协议破解与改机:分析风控的设备采集、加密与签名机制是逆向分析的重点,了解其加密算法与参数生成逻辑能够帮助研究者防绕过限制,检测改机或直......
  • 黑石云|Linux-基础口令
    在Linux系统中,设置和管理口令(密码)是确保系统安全性的重要环节。以下是一些关于Linux基础口令的详细解释和操作指南:一、口令设置命令passwd命令功能:用于更改当前用户的密码。使用方法:在终端中输入passwd,然后按照提示输入当前密码、新密码以及确认新密码。注意事项:新密码可......
  • Linux基础——创建本地yum源目录及同步公网yum源repo目录到本地
    一、检查同步在线yum源repo源所有rpm包的占用大小yumrepolistAppStream-v 二、下载带目录bclinux/el8.2/,下载目录下除iso及index的目录及文件wget-r-np-nH-Riso,index.html*https://mirrors.cmecloud.cn/bclinux/el8.2/不带目录结构下载wget-nd-r-l1-A.rpm......
  • Linux基础与进阶 - 命令和文件操作
    [guougo@guoguo-host~]$~ 当前所在目录的名字,会随着用户进入不同目录而改变~ 表示当前用户的家目录(homedirectory)$ 指你所具备的权限$:普通用户#:超级用户,root权限使用sudosu切换到超级用户使用ctrl+d退出root用户。获取当前用户名和主机名#获取当前用......
  • Linux主机安全入侵排查步骤
    1导语经常有用户报障系统被植入恶意程序,如挖矿软件、ddos攻击病毒、syn映射攻击病毒等,可以按照以下流程为用户排查入侵病毒类型:一、定位病毒进程对于用户反馈云主机性能卡顿,CPU和内存占用较高的情况:执行TOP命令,查看占用CPU较高的异常进程,一般多为80%以上,有个别病毒占......
  • Linux安装Harbor亲测成功
    Harbor简介Harbor是为企业用户设计的容器镜像仓库开源项目,包括了权限管理(RBAC)、LDAP、审计、安全漏洞扫描、镜像验真、管理界面、自我注册、HA等企业必需的功能,同时针对中国用户的特点,设计镜像复制和中文支持等功能。虽然Docker官方提供了公共的镜像仓库,但是从安全和效率等......
  • Linux恢复误删除的文件
    丢失数据是任何用户都可能经历的最令人不安和痛苦的经历之一。一旦珍贵数据被删除或丢失,就再也找不不回来通常会引发焦虑,让用户感到无助。值得庆幸的是,有几个工具可以用来恢复Linux机器上被删除的文件。我们尝试了一些数据恢复工具,可以帮助您恢复删除的文件,其中一个脱颖而出就是......