Linux操作系统基础命令-top

Linux 基础命令 top

  • top 实时监控系统运行进程情况
    • top 用法
    • top 选项
    • top 示例
    • top 按键指令
  • 参考资料
  • 注脚

top 实时监控系统运行进程情况

Linux top1 命令(top) 用来实时监控Linux的系统状况,比如CPU、内存的使用,类似于Windows的任务管理器。

top 用法

Usage: top [options]
options -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
e.g., top, top -d 2 -n 5
-d secs:动态刷新系统情况的间隔(单位:秒)
-n max:展示结果次数

$ top -d 2 -n 1
top - 11:29:19 up 110 days, 20:47,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 163 total,   1 running, 162 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8012508 total,  1302276 free,   817552 used,  5892680 buff/cache
KiB Swap: 14680060 total, 14680060 free,        0 used.  6769676 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  125488   4008   2504 S   0.0  0.1  35:32.98 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.35 kthreadd
...

top 选项

选项 简要描述
-h, -v 显示top使用帮助/版本信息
-b 以批量模式运行,但不能接受命令行输入
-c 显示命令行,而不仅仅是命令名
-H 待补充
-i 禁止显示空闲进程或僵尸进程
-O 待补充
-s 安全模式运行,禁用一些交互互指令
-S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程
-d secs 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒
-n max 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出
-u, -U uid 显示指定用户的进程
-p pid(s) 仅监视指定进程的ID pid(s)是一个数值
-o field 待补充
-w [cols] 显示结果宽输出, cols为指定宽度

top 示例

$ top
top - 14:06:07 up 110 days, 23:24,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 167 total,   1 running, 166 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  8012508 total,  1295424 free,   824024 used,  5893060 buff/cache
KiB Swap: 14680060 total, 14680060 free,        0 used.  6763108 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    1 root      20   0  125488   4008   2504 S   0.0  0.1  35:34.98 systemd
    2 root      20   0       0      0      0 S   0.0  0.0   0:00.35 kthreadd
    3 root      20   0       0      0      0 S   0.0  0.0   0:04.14 ksoftirqd/0
    5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:0H

top - 14:06:07 up 110 days, 23:24, 2 users, load average: 0.00, 0.01, 0.05 任务队列信息, 同uptime命令
第1行:显示系统已启动的时间、目前上线人数、系统整体的负载(load)
14:06:07 当前时间
up 110 days, 23:24 已经运行时间
2 users 当前有2个用户登录系统
load average: 0.00, 0.01, 0.05 系统负载,三个数分别是1分钟、5分钟、15分钟的负载情况
注意: 需要注意的是系统的负载,三个数据分别代表 1, 5, 10 分钟的平均负载。 一般来说,这个负载值应该不太可能超过 1 才对,除非您的系统很忙碌。 如果持续高于 5 的话,那么…仔细的看看到底是那个程序在影响整体系统吧

Tasks: 167 total, 1 running, 166 sleeping, 0 stopped, 0 zombie 任务(进程)
第2行:显示的是目前的观察程序数量
167 total 当前进程总数
1 running 正在运行进程数量
166 sleeping 休眠状态的进程数量
0 stopped 停止状态的进程数量
0 zombie 僵尸进程数量
注意:需要注意的是最后的 zombie 那个数值,如果不是 0 ,好好看看到底是那个 process 变成疆尸了吧。

%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st CPU状态信息
第3行:显示的是 CPU 的整体负载,每个项目可使用?查阅
0.0 us 用户占用CPU的百分比
0.0 sy 内核占用CPU的百分比
0.0 ni 改变过优先级的进程占用CPU的百分比
100.0 id 空闲CPU百分比
0.0 wa O等待占用CPU的百分比
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.0 si 软中断(Software Interrupts)占用CPU的百分比
0.0 st (Steal time) 虚拟 CPU 等待实际 CPU 的时间的百分比
注意:需要观察的是 id (idle) 的数值,一般来说,应该要接近 100% 才好,表示系统很少资源被使用

KiB Mem : 8012508 total, 1295424 free, 824024 used, 5893060 buff/cache 内存状态
第4行:显示目前的物理内存的使用情况
8012508 total 物理内存总量
1295424 free 空闲内存总量
824024 used 使用中的内存总量
5893060 buff/cache 缓存的内存量
注意:

KiB Swap: 14680060 total, 14680060 free, 0 used. 6763108 avail Mem 交换分区信息
第5行:显示目前的交换分区(Swap虚拟内存) 的使用情况
14680060 total 交换区总量
14680060 free 空闲交换区总量
0 used 使用的交换区总量
6763108 avail Mem 有用的交换区总量
注意:

第6行:空白行。当在 top 命令中输入指令时,此处将显示状态

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 进程信息
第7行:显示目前的各进程(任务)的状态监控
PID 进程id
USER 进程所有者
PR 进程优先级
NI nice值。负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR 共享内存大小,单位kb
S 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)
注意:NI, Nice的简写,与 Priority 有关,也是越小越早被执行

top 按键指令

top 命令执行过程当中可以使用的按键指令

按键 指令功能描述
? 显示在top 当中可以输入的按键指令
P 以 CPU的使用资源排序显示
M 以 Memory的使用资源排序显示
N 以 PID来排序
T 由该Process 使用的CPU 时间累积(TIME+)排序
k 给予某个PID 一个讯号(signal)
r 给予某个PID 重新制订一个nice 值
f 显示或者隐藏对应的列,按回车键确定
q 退出
  • f按键:会显示如下列表
Fields Management for window 1:Def, whose current sort field is %CPU
   Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,
   'd' or <Space> toggles display, 's' sets sort.  Use 'q' or <Esc> to end!

* PID     = Process Id             nsUTS   = UTS namespace Inode
* USER    = Effective User Name
* PR      = Priority
* NI      = Nice Value
* VIRT    = Virtual Image (KiB)
* RES     = Resident Size (KiB)
* SHR     = Shared Memory (KiB)
* S       = Process Status
* %CPU    = CPU Usage
* %MEM    = Memory Usage (RES)
* TIME+   = CPU Time, hundredths
* COMMAND = Command Name/Line
...

参考资料

  • 如有 错误之处 还请多多指正

注脚


  1. top ↩︎

你可能感兴趣的:(Linux)