top简单使用

进程简单使用

top命令介绍

实时系统性能监控工具

复制代码
top - 14:30:00 up 30 days,  3:15,  2 users,  load average: 0.05, 0.10, 0.15
Tasks: 250 total,   1 running, 249 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.3 us,  1.2 sy,  0.0 ni, 96.3 id,  0.1 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15982.2 total,   1024.5 free,   8192.1 used,   6765.6 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   7500.1 avail Mem
第一行 系统时间 运行时间 登录用户数 系统负载 负载平均:最重要的指标之一,显示过去1分钟、5分钟、15分钟的平均负载。
第二行 进程总数 运行中 休眠中 已停止 僵尸进程 僵尸进程:已完成但未被父进程清理的进程
第三行 us:用户空间进程占用CPU百分比。 sy:内核空间进程占用CPU百分比。 id:CPU空闲百分比。越高越好。 wa:等待I/O(如磁盘、网络)的CPU时间百分比。过高(如>20%)通常表示I/O瓶颈。 ni:被调整过优先级的进程占用百分比。 hi/si:处理硬件/软件中断的CPU时间。 st:被虚拟机管理程序"偷走"的时间(对于虚拟机)。
第四、五行 物理内存和交换空间使用情况 used(已用),free(空闲),buff/cache(缓存)。Linux会利用空闲内存做缓存,所以free很少是正常的,avail Mem(可用内存)更能反映真实情况

常用交互命令(在top运行时按键)

排序 P(默认):按 CPU使用率 排序。 M:按 内存使用率(%MEM) 排序 T:按 CPU时间(TIME+) 排序 N:按 PID 排序
进程管理 k杀死进程 。输入PID和信号(默认15,强制为9) r:调整进程优先级。输入PID和新的NI值。
显示控制 1切换显示所有CPU核心的单独使用情况u只显示指定用户的进程c切换显示完整的命令行 。非常有用,可以看到进程的详细启动参数。 f进入字段管理界面 ,可以自定义显示哪些列。 Shift + ><左右滚动字段
刷新与退出 Space:立即刷新。 s:改变刷新间隔(默认3秒)。输入秒数,如20.5q:退出 top

ps命令介绍

ps -aux
  • a:显示所有用户的进程(包括其他用户)。
  • u:以用户为主的格式显示,即显示进程的详细信息,如用户名、CPU、内存等。
  • x:显示没有控制终端的进程(通常是一些后台进程、守护进程)。

查看进程信息的核心工具

复制代码
查看所有进程(最常用)
ps -aux

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0 169284 12804 ?        Ss   08:30   0:01 /sbin/init
alice     1234  1.2  0.5 1023456 51234 pts/0   Sl+  09:15   2:30 /usr/bin/python3
USER 进程所有者
PID 进程ID
%CPU CPU使用率百分比
%MEM 内存使用率百分比
VSZ 虚拟内存大小(KB)
RSS 常驻内存大小(实际物理内存,KB)
TTY ?:没有控制终端(通常是守护进程) pts/0、tty1:有控制终端
STAT 进程状态
START 进程启动时间
TIME 进程占用CPU的总时间
COMMAND 启动进程的命令

进程状态(STAT)详解

R 运行中(Running)或可运行(在运行队列中)
S 休眠中(Sleeping),可中断的休眠
D 不可中断的休眠(Uninterruptible sleep),通常是在等待I/O
T 已停止(Stopped),通常是由作业控制信号停止
Z 僵尸进程(Zombie),已终止但未被父进程回收
X 已死亡(Dead,很少见)
ps -ef
  • -e:显示所有进程(等同于 -A)。

  • -f:全格式,显示更多详细信息。

    ps -ef
    UID PID PPID C STIME TTY TIME CMD
    root 1 0 0 08:30 ? 00:00:01 /sbin/init
    alice 1234 1001 1 09:15 pts/0 00:02:30 /usr/bin/python3

PPID 父进程ID
C CPU利用率
STIME 进程启动日期或时间
CMD 完整的命令行(包括参数)

常用命令

复制代码
ps aux --sort=-%cpu      # 按CPU使用率降序
ps aux --sort=-%mem      # 按内存使用率降序
ps aux --sort=-rss       # 按实际内存降序
ps aux --sort=+pid       # 按PID升序
# 只显示需要的列
ps -eo pid,ppid,cmd,%cpu,%mem --sort=-%cpu | head
# 自定义列标题
ps -o pid=进程ID,user=用户名,cmd=命令
# 查看nginx的所有进程
ps -ef | grep nginx
# 查找消耗CPU最高的进程
ps aux --sort=-%cpu | head -10

创建一个僵尸进程

复制代码
(sleep 1 & exec /bin/sleep 10000) &
[1] 6931

top 查看有没有 zombie

复制代码
Tasks: 102 total,   1 running, 100 sleeping,   0 stopped,   1 zombie

方法一:

用用户定义格式展示每个进程

进程 父进程 状态 命令

复制代码
ps -eo pid,ppid,stat,cmd | grep '^.*Z'

pid     ppid   stat   cmd
6932    6931      Z    [sleep] <defunct>

杀掉父进程

复制代码
kill -9 6931

方法二:

复制代码
ps aux | grep -E 'Z|defunct'

USER    PID     %CPU    %MEM   VSZ  RSS   TTY     STAT  START   TIME COMMAND
root    6932    0.0     0.0    0     0     pts/0    Z   19:55   0:00 [sleep] <defunct>

查看父进程

复制代码
ps -o ppid= -p 6932
6931

杀掉父进程

复制代码
Kill -9  6931
相关推荐
广东大榕树信息科技有限公司2 小时前
如何通过动环监控系统提升机房运行安全与效率?
运维·网络·物联网·国产动环监控系统·动环监控系统
半壶清水2 小时前
开源免费的在线考试系统online-exam-system部署方法
运维·ubuntu·docker·开源
QQ__17646198243 小时前
Ubuntu系统创建新用户与删除用户
linux·运维·服务器
渣渣盟3 小时前
Linux邮件服务器快速搭建指南
linux·服务器·开发语言
6极地诈唬3 小时前
【PG漫步】DELETE不会改变本地文件的大小,VACUUM也不会
linux·服务器·数据库
ArrebolJiuZhou3 小时前
00 arm开发环境的搭建
linux·arm开发·单片机·嵌入式硬件
谷雨不太卷3 小时前
Linux_文件权限
linux·运维·服务器
无泪无花月隐星沉4 小时前
uos server 1070e lvm格式磁盘扩容分区
linux·运维·uos
Bruce_Liuxiaowei5 小时前
Nmap+Fofa 一体化信息搜集工具打造
运维·开发语言·网络·网络安全