Linux top 命令详解:从入门到高级用法

Linux top 命令详解:从入门到高级用法

在 Linux 系统中,top 是一个强大的实时监控工具,用于查看系统资源使用情况和进程状态。它可以帮助你快速了解 CPU、内存、负载等信息,是系统管理员和开发者的日常利器。本文将从基本用法开始,逐步深入到日常场景和高级用法,带你全面掌握 top

一、top 命令基本用法

1. 启动 top

在终端输入以下命令即可启动 top

top

启动后,你会看到一个动态更新的界面,显示系统状态和进程列表。

2. top 界面解析

top 的输出分为两大部分:系统概要(顶部)和进程列表(底部)。

系统概要
  • 第一行:系统时间、运行时间、用户会话数和平均负载(1、5、15 分钟)。
    • 示例:10:30:45 up 1 day, 2:30, 2 users, load average: 0.25, 0.30, 0.35
    • 平均负载表示系统繁忙程度,通常与 CPU 核心数对比(小于核心数为正常)。
  • 第二行:任务统计,包括运行中(running)、睡眠(sleeping)、停止(stopped)和僵尸(zombie)进程数量。
  • 第三行:CPU 使用率(us 用户态、sy 内核态、id 空闲等)。
  • 第四、五行:内存使用情况(物理内存和交换空间)。
进程列表
  • PID:进程 ID。
  • USER:运行进程的用户。
  • %CPU:CPU 使用百分比。
  • %MEM:内存使用百分比。
  • COMMAND:启动进程的命令。

3. 退出 top

按下 q 键即可退出 top

二、日常使用场景

top 在日常运维和开发中有许多实用场景,以下是几个典型例子:

1. 检查系统负载

通过第一行的 load average,你可以判断系统是否过载。例如,在 4 核 CPU 上,如果负载超过 4,可能需要优化或排查问题。

2. 定位高 CPU/内存占用进程

%CPU%MEM 列观察,找到占用资源最多的进程。例如,发现某个进程(如 httpd)占用 80% CPU,可能需要检查服务配置或日志。

3. 监控实时性能

在开发或调试时,运行程序后打开 top,观察其资源占用是否符合预期。比如测试一个 Python 脚本时,确认它是否意外吃满内存。

4. 检测僵尸进程

如果第二行显示较多 zombie 进程,说明有进程未被父进程回收,可以用 ps 进一步排查。

三、top 的交互操作(基础用法)

top 是一个交互式工具,运行时可以通过按键调整显示内容:

  • h:显示帮助菜单。
  • f:进入字段管理界面,选择显示哪些列(如添加 RSS 实际内存列)。
  • P:按 CPU 使用率排序(默认)。
  • M:按内存使用率排序。
  • k:输入 PID 杀死进程(需有权限)。
  • r:输入 PID 修改进程优先级(renice)。
  • 1:显示所有 CPU 核心的独立使用率。
  • z:启用颜色高亮显示。

示例:按内存排序

运行 top 后按 M,列表会按 %MEM 从高到低排序,快速找到内存大户。

四、高级用法

除了基础功能,top 还支持命令行参数和定制化操作,适合高级用户。

1. 命令行参数

直接在启动时指定选项,避免交互式调整:

  • -d 秒数:设置刷新间隔(默认 3 秒)。
    top -d 1  # 每秒刷新一次
    
  • -p PID:只监控指定进程。
    top -p 1234  # 监控 PID 为 1234 的进程
    
  • -u 用户名:只显示某用户的进程。
    top -u alice  # 只看用户 alice 的进程
    
  • -b:批处理模式(非交互),适合脚本输出。
    top -b -n 1 > output.txt  # 运行一次并保存到文件
    

2. 保存自定义配置

top 的显示设置(如列顺序、排序方式)可以保存:

  1. 运行 top,按 W 保存配置。
  2. 配置会保存到 ~/.toprc,下次启动时自动加载。

3. 结合管道和脚本

在脚本中,top 的批处理模式非常实用。例如,获取 CPU 使用率最高的进程:

top -b -n 1 | grep -A 1 "PID" | tail -n 1 | awk '{print $1 " " $9}'

输出 PID 和 %CPU,例如:

1234 45.6

4. 高级过滤与高亮

运行 top 后:

  • o,输入过滤条件(如 COMMAND=nginx),只显示符合条件的进程。
  • = 清除过滤。

5. 分析多核 CPU

1 查看每个核心的使用率,判断负载是否均衡。如果某个核心占用率长期 100%,可能存在单线程瓶颈。

五、与替代工具的对比

top 虽然强大,但并非唯一选择:

  • htop:增强版 top,界面更友好,支持鼠标操作。
  • ps:静态快照,适合脚本处理。
  • free:专注于内存信息。
    根据需求选择合适的工具,比如日常监控用 top,复杂分析用 htop

六、注意事项

  1. 权限问题:普通用户只能杀死自己的进程,root 用户可操作所有进程。
  2. 资源占用top 本身占用很少,但频繁刷新(如 -d 0.1)可能略微增加负载。
  3. 数据解读%CPU 超过 100% 可能是多核累加,需结合核心数理解。

七、总结

top 是 Linux 中不可或缺的工具,简单易用又功能强大。日常使用时,它能帮你快速定位问题;高级用法则让它成为脚本化运维的得力助手。无论是新手还是老手,花点时间掌握 top,都能显著提升系统管理效率。

试试在你的服务器上运行 top,观察资源使用情况,或者用 -p 监控某个关键进程,体会它的实用性吧!


希望这篇博客对你理解和使用 top 命令有所帮助!如果有其他问题,欢迎留言讨论。

后记

2025年3月18日21点59分于上海。在Grok 3大模型辅助下完成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/898287.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp-x vue 特性

生命周期 在组合式API中,组件可以监听应用和页面的生命周期。但由于应用和页面都有onShow和onHide,导致重名。所以在组合式的组件中监听页面的显示隐藏,改为了onPageShow和onPageHide。 这个和uniapp不一样,uniapp自定义组件无法…

HTML5扫雷游戏开发实战

HTML5扫雷游戏开发实战 这里写目录标题 HTML5扫雷游戏开发实战项目介绍技术栈项目架构1. 游戏界面设计2. 核心类设计 核心功能实现1. 游戏初始化2. 地雷布置算法3. 数字计算逻辑4. 扫雷功能实现 性能优化1. DOM操作优化2. 算法优化 项目亮点技术难点突破1. 首次点击保护2. 连锁…

Qt之自定义界面组件 一

通过qt中的painter绘图事件绘制一个电池电量图的变化。效果如下图 创建一个基于界面widget工程,在wdiget界面添加一个widget界面,将添加的widget界面的类提升为Tbattery.在Tbattery类中重写painEvent电池电量代码 文件目录结构 主要部分代码 //Tbattery.cpp #inc…

LeRobot源码剖析——对机器人各个动作策略的统一封装:包含ALOHA ACT、Diffusion Policy、VLA模型π0

前言 过去2年多的深入超过此前7年,全靠夜以继日的勤奋,一天当两天用,抠论文 抠代码 和大模型及具身同事讨论,是目前日常 而具身库里,idp3、π0、lerobot值得反复研究,故,近期我一直在抠π0及l…

数据结构篇——线索二叉树

一、引入 遍历二叉树是按一定规则将二叉树结点排成线性序列,得到先序、中序或后序序列,本质是对非线性结构线性化,使结点(除首尾)在线性序列中有唯一前驱和后继;但以二叉链表作存储结构时,只能获…

汽车保养记录用什么软件记录,汽车维修记录查询系统,佳易王汽车保养维护服务记录查询管理系统操作教程

一、概述 本实例以佳易王汽车保养维护服务记录查询管理系统为例说明,其他版本可参考本实例。试用版软件资源可到文章最后了解,下载的文件为压缩包文件,请使用免费版的解压工具解压即可试用。 软件特点:1、功能实用,操…

Sqlmap注入工具简单解释

安装 1. 安装 Python SQLMap 是基于 Python 开发的,所以要先安装 Python 环境。建议安装 Python 3.9 或更高版本,可从 Python 官方网站 下载对应操作系统的安装包,然后按照安装向导完成安装。 2. 获取 SQLMap 可以从 SQLMap 的官方 GitHu…

LLM自动化评测

使用的数据集:ceval-exam import requests from datasets import load_dataset, concatenate_datasets import re from tqdm import tqdm import re, time, tiktoken, ollama from ollama import ChatResponse from ollama import Optionsdef llm(model, query, te…

Python IP解析器 ip2region使用

说明:最近需要在python项目内使用IP定位所在城市的需求,没有采用向外部ISP服务商API请求获取信息的方案,则翻了翻,在搞Java时很多的方案,在Python端反而可选择范围很小。 # 示例查询 ips ["106.38.188.214"…

python开发订单查询功能(flask+orm bee)

1. 搭建python环境。 可以参考其它文档。 此处python使用 3.12 IDE随意,PyCharm 或 Eclipse PyDev也可以。 2. Flask 2.1 安装Flask pip install Flask 2.2 一个最简单的flask实例 创建一个工程, 新建一个 main.py文件, 输入以下内容…

哈尔滨服务器租用托管流程

哈尔滨服务器租用托管流程可分为三个阶段实施,具体操作如下: 一、前期准备阶段 业务需求评估 明确计算资源需求:CPU核心数/线程数、内存容量、存储类型(HDD/SSD/NVMe)及容量、带宽标准(独享/共享) 确定网络架构要求:多线接入、国际…

音频大语言模型可作为描述性语音质量评价器

论文《AUDIO LARGE LANGUAGE MODELS CAN BE DESCRIPTIVE SPEECH QUALITY EVALUATORS》学习 推动多模态代理从"能听"到"懂好坏"的进化 摘要: . 研究背景与问题 核心内容:现有音频大语言模型缺乏对输入语音质量的感知能力&#xff…

CVPR2025自动驾驶端到端前沿论文汇总

自动驾驶 文章目录 自动驾驶前言自动驾驶的轨迹预测论文端到端自动驾驶论文 前言 汇总CVPR2025自动驾驶前沿论文 自动驾驶的轨迹预测论文 Leveraging SD Map to Augment HD Map-based Trajectory PredictionModeSeq: Taming Sparse Multimodal Motion Prediction with Seque…

我在哪,要去哪

在直播间听到一首好听的歌《我在哪,要去哪》-汤倩。 遇见的事:21~24号抽调去招生。 感受到的情绪:公假吗?给工作量吗?月工作量不够扣钱吗?报销方便吗?有事情,从来不解决后顾&#x…

某快餐店用户市场数据挖掘与可视化

1、必要库的载入 import pandas as pd import matplotlib.pyplot as plt import seaborn as sns2、加载并清洗数据 # 2.1 加载数据 df pd.read_csv(/home/mw/input/survey6263/mcdonalds.csv)# 2.2 数据清洗 # 2.2.1 检查缺失值 print(缺失值情况:) print(df.isn…

Easysearch 索引生命周期管理实战

如果你的使用场景是对时序型数据进行分析,可能你会更重视最新的数据,并且可能会定期对老旧的数据进行一些处理,比如减少副本数、forcemerge、 删除等。Easysearch 的索引生命周期管理功能,可以自动完成此类索引的管理任务。 创建…

《心理学与生活》2025最新网课答案

《心理学与生活》2025最新网课答案 文章目录 《心理学与生活》2025最新网课答案发展与教育单元测试情绪与情感单元测验人格与动机单元测试感知与记忆单元测试文化与社会单元测试 发展与教育单元测试 题数 20 棉花糖实验中哪些小孩长大后的表现更好()。 …

Modbus通信协议基础知识总结

1. 数据类型与存储区分类 Modbus协议将数据分为四类存储区,通过存储区代号区分: 输出线圈(0x):可读写,对应二进制开关量(如继电器状态),地址范围000001-065536&#xff…

docker环境下安装flink

前言 flink在实时计算领域中有着举足轻重的地位。这篇文章来介绍一下,在linux的docker环境下,怎么快速安装一个单机版本的flink。 操作流程 环境准备 检查docker环境是不是正常,如果在拉取镜像的时候比较慢,建议使用镜像加速&…

LeetCode 2614.对角线上的质数:遍历(质数判断)

【LetMeFly】2614.对角线上的质数:遍历(质数判断) 力扣题目链接:https://leetcode.cn/problems/prime-in-diagonal/ 给你一个下标从 0 开始的二维整数数组 nums 。 返回位于 nums 至少一条 对角线 上的最大 质数 。如果任一对角线上均不存在质数&…