当前位置: 首页 > news >正文

【基础设施管理】01-Linux进程管理完全手册:ps-top-htop深度对比

专栏:基础设施管理
难度:入门
标签:Linux进程管理pstophtop运维基础


前言

每一个运维工程师每天都在和进程打交道,但真正能把pstophtop用透的并不多。本文从原理出发,结合实际场景,帮你彻底掌握这三个命令,并知道在什么时候用哪个。


一、进程是什么

在 Linux 中,进程是操作系统资源分配和调度的基本单位。每个进程都有:

  • PID:进程唯一标识符
  • PPID:父进程ID
  • 状态:R(运行)、S(睡眠)、D(不可中断睡眠)、Z(僵尸)、T(停止)
  • 用户/组:决定进程权限范围
# 查看进程状态码含义manps|grep-A5"PROCESS STATE"

二、ps 命令精讲

ps(Process Status)是最基础的进程查看命令,输出的是快照,不会刷新。

2.1 常用参数组合

# 最常用:显示所有进程的完整信息psaux# 按进程树展示(运维排查利器)psaxjf# 查看指定进程ps-p1234-opid,ppid,cmd,%cpu,%mem# 按CPU排序(取前10)psaux--sort=-%cpu|head-10# 按内存排序psaux--sort=-%mem|head-10

2.2ps aux字段解读

字段含义
USER进程所有者
PID进程ID
%CPUCPU占用百分比(累积值)
%MEM物理内存占用百分比
VSZ虚拟内存大小(KB)
RSS实际占用物理内存(KB)
STAT进程状态
START进程启动时间
TIMECPU累计使用时间
COMMAND启动命令

2.3 高级用法:自定义输出格式

# 自定义输出:只看Java进程ps-eopid,ppid,user,stat,pcpu,pmem,comm|grepjava# 找出僵尸进程psaux|awk'$8 == "Z"'# 找出所有子进程ps--ppid1234

三、top 命令精讲

top动态刷新的进程监控工具,默认3秒刷新一次,是快速定位性能问题的首选。

3.1 界面解读

top - 10:23:45 up 30 days, 14:32, 2 users, load average: 0.52, 0.48, 0.43 Tasks: 234 total, 1 running, 233 sleeping, 0 stopped, 0 zombie %Cpu(s): 3.2 us, 1.1 sy, 0.0 ni, 95.3 id, 0.2 wa, 0.0 hi, 0.2 si, 0.0 st MiB Mem : 15897.4 total, 1024.8 free, 10248.3 used, 4624.3 buff/cache MiB Swap: 2048.0 total, 1998.2 free, 49.8 used. 4987.1 avail Mem

关键指标解读:

  • load average:1分钟/5分钟/15分钟平均负载,超过CPU核心数就要警惕
  • us(user):用户空间CPU占用,高说明应用代码有问题
  • sy(system):内核空间CPU占用,高说明系统调用频繁
  • wa(iowait):等待I/O,高说明磁盘或网络IO是瓶颈
  • buff/cache:缓冲/缓存,Linux会尽量用剩余内存做缓存,这是正常的

3.2 top 交互快捷键

按键功能
P按CPU排序
M按内存排序
T按运行时间排序
k杀死进程(输入PID)
r调整进程优先级(renice)
1展开每个CPU核心的使用情况
f自定义显示字段
W保存当前配置
q退出

3.3 非交互模式(适合脚本采集)

# 输出一次,5个进程,不显示标题top-b-n1|head-20# 只监控指定PIDtop-b-n1-p1234,5678

四、htop 命令精讲

htoptop的增强版,支持鼠标操作、彩色界面、树形视图,推荐日常使用。

4.1 安装

# CentOS/RHELyuminstall-yhtop# Ubuntu/Debianaptinstall-yhtop# 无root权限时从源码编译wgethttps://hisham.hm/htop/releases/2.2.0/htop-2.2.0.tar.gztarxf htop-2.2.0.tar.gz&&cdhtop-2.2.0 ./configure--prefix=$HOME/.local&&make&&makeinstall

4.2 界面特性

  • 彩色进度条:CPU、内存、Swap的使用率一目了然
  • 进程树:F5 切换树形视图,理清父子关系
  • 鼠标支持:可直接点击列标题排序,点击进程高亮
  • 多选:Space 多选进程,批量操作

4.3 快捷键速查

按键功能
F2设置(自定义颜色、显示列)
F3搜索进程
F4过滤进程
F5树形视图
F6按列排序
F9发送信号(杀进程)
F10 / q退出

五、三者对比总结

维度pstophtop
刷新方式快照,不刷新动态,默认3s动态,可自定义
交互性有(键盘)强(键盘+鼠标)
进程树ps axjfF5支持
脚本友好非常适合适合(-b模式)不推荐
安装系统内置系统内置需手动安装
推荐场景脚本、日志分析快速排查日常监控

总结:写脚本用ps,快速看系统状态用top,日常运维用htop


六、实战:定位CPU飙高进程的完整流程

# 第一步:确认系统负载uptime# 第二步:找出CPU占用最高的进程psaux--sort=-%cpu|head-10# 第三步:确认该进程的线程情况ps-Lp<PID>-opid,tid,pcpu,pmem,comm# 第四步:用strace追踪系统调用(谨慎用于生产)strace-p<PID>-c# 第五步:用perf定位热点函数perftop-p<PID>

结语:进程管理是运维基本功,三个命令各有侧重。掌握它们,才能在排查问题时不慌乱、有思路。下篇我们聊 Nginx 从配置到生产的完整实践。

http://www.jsqmd.com/news/1074703/

相关文章:

  • 手机视频音乐怎么提取MP3?小白也能完成的音频提取教程
  • 过度设计的代价:从 Maven 版本幻觉到工程上的简单原则
  • 拒绝裸奔!手把手教你用Python穿上一件“服务器”外套
  • Metasploit渗透测试实战:从模块化架构到自动化攻击链
  • Codex额度用完怎么办?2026年Credits购买、查看与使用方法
  • 卷积操作可视化实操:从滑动窗口到特征图生成
  • 面试辅助工具横评:我试了5款AI面试工具,最后留下了OfferGo
  • 儿童虐待AI识别:多源信号融合与人机协同实践指南
  • Claude Code 提示词设计:从塑造“人格”到建立“状态机”
  • ​designmodel绘制了二维壳体单元——必须设置壳体厚度,否则静力学分析会出现问号。——设置了厚度,就可以正常计算了,不管是一维线体(设置截面形状),还是二维壳体(设置厚度),都需要设置有体积的
  • MC-037 | 自定义 Skill 开发:创建你的AI能力模块
  • MPC885 MMU与TLB机制深度解析:从寄存器操作到性能优化实战
  • Rust WebSocket安全实践:基于rustls的TLS加密与生产环境部署
  • MATLAB fmincon实战:从动力学建模到星际轨迹优化
  • OpenClaw本地部署指南:构建可审计、可回滚的AI工作流底盘
  • MPC855T ATM控制器APC算法:原理、配置与流量调度实战
  • MPC862程序流追踪与硬件调试:从原理到实战解决嵌入式通信系统难题
  • AI智能体研发标准化:Knows规范与工具链实践指南
  • Android官方AI能力解析:从TextClassifier到TensorFlow Lite实战
  • SpringBoot中文乱码终极解决方案:JVM、Logback与VSCode终端编码对齐
  • Wireshark抓包诊断Claude-Code本地执行失败
  • Deep-Live-Cam实时换脸部署全指南:CUDA、ONNX与可信计算基实战
  • 基于Tor Hidden Service的匿名通信系统Ricochet架构深度解析
  • Harness Engineering:跨系统协作的接口层工程化实践
  • OpenClaw微信AI助理接入:轻量级Agent服务落地实践
  • Claude Code+GLM-5+Superpowers:Windows本地智能编程工作流
  • ThingSpeak元数据功能详解:物联网数据管理的革命性升级
  • 四 Claude 同屏协作:终端级多智能体工程实践
  • 多重冒号(::)在编程中的核心作用:从命名空间到代码组织
  • OpenClaw:面向业务流程的智能体操作系统架构解析