Linux基本系统信息查看命令总结

 
Category: Linux-Shell

写在前面

学习Linux系统, 首先就要了解其系统的基本调用接口, 这里主要就是Shell命令了, top就是其中几个最重要也最常用的命令之一, 下面讲讲在Archlinux(x86_64)上使用top命令的一些参数与详解. 参考了man top1以及一些博客文章2.

基本界面

top - 04:37:41 up 2 min,  1 user,  load average: 0.75, 0.65, 0.28
Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  1.2 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2913.3 total,   2623.1 free,     92.4 used,    197.8 buff/cache
MiB Swap:   1907.0 total,   1907.0 free,      0.0 used.   2605.7 avail Mem

    PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
    382 root      20   0   11272   3616   2956 R   2.0   0.1   0:00.31 top
     11 root      20   0       0      0      0 I   0.7   0.0   0:00.89 kworker/u6:1-events_unbound
     26 root      20   0       0      0      0 I   0.7   0.0   0:00.88 kworker/1:0-events
     53 root      20   0       0      0      0 I   0.7   0.0   0:01.25 kworker/2:1-events
     20 root      20   0       0      0      0 I   0.3   0.0   0:01.31 kworker/0:1-events
    138 root       0 -20       0      0      0 I   0.3   0.0   0:00.23 kworker/2:1H-events_highpri
      1 root      20   0   18492  11364   8920 S   0.0   0.4   0:06.86 systemd
      2 root      20   0       0      0      0 S   0.0   0.0   0:00.02 kthreadd
      3 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_gp
      4 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 rcu_par_gp
      5 root       0 -20       0      0      0 I   0.0   0.0   0:00.00 netns
...

总览

1) Summary Area; 总览区域 2) Fields/Columns Header; 字段/列标题 3) Task Area. 任务区域.

前面5行

top - 04:37:41 up 2 min,  1 user,  load average: 0.75, 0.65, 0.28
Tasks: 108 total,   1 running, 107 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.1 us,  1.2 sy,  0.0 ni, 98.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   2913.3 total,   2623.1 free,     92.4 used,    197.8 buff/cache
MiB Swap:   1907.0 total,   1907.0 free,      0.0 used.   2605.7 avail Mem

这里算是对系统信息的一个总览, 下面逐行分析.

行数 内容 具体解释
1 任务队列信息 系统当前时间, up后为系统启动时间, 用户数量,
系统在之前 1 分钟、5 分钟、15 分钟的平均负载
2 进程信息 进程总数, 运行/休眠/停止/僵尸进程数
3 CPU信息 参见下边描述
4 物理内存信息 (默认单位MiB)物理内存总量, 空闲的物理内存量,
已使用的物理内存量, 作为缓存的物理内存量
5 交换内存分区信息 (默认单位MiB)交换分区(虚拟内存)总量,
空闲的虚拟内存量, 已使用的虚拟内存量,
在不进行交换的情况下启动新应用程序可用的物理内存的估值
显示名称 man page解释 中文解释
us, user time running un-niced user processes 未改变优先级的用户进程的CPU时间占比
sy, system time running kernel processes (内核态)系统进程CPU时间占比占用时间比
ni, nice time running niced user processes 改变过优先级的用户进程的CPU时间占比
id, idle time spent in the kernel idle handler 空闲内核的CPU时间占比占用率
wa, IO-wait time waiting for I/O completion 等待输入输出(i/o)完成进程的CPU时间占比
hi time spent servicing hardware interrupts 硬中断请求服务的CPU时间占比
si time spent servicing software interrupts 软中断请求服务的CPU时间占比
st time stolen from this vm by the hypervisor 虚拟时间百分比
(存在虚拟机时等待实际CPU的时间占比)
   %MEM - simply RES divided by total physical memory


   CODE - the `pgms' portion of quadrant 3


   DATA - the entire quadrant 1 portion of VIRT plus all


          explicit mmap file-backed pages of quadrant 3


   RES  - anything occupying physical memory which, beginning with


          Linux-4.5, is the sum of the following three fields:


          RSan - quadrant 1 pages, which include any


                 former quadrant 3 pages if modified


          RSfd - quadrant 3 and quadrant 4 pages


          RSsh - quadrant 2 pages


   RSlk - subset of RES which cannot be swapped out (any quadrant)


   SHR  - subset of RES (excludes 1, includes all 2 & 4, some 3)


   SWAP - potentially any quadrant except 4


   USED - simply the sum of RES and SWAP

   VIRT - everything in-use and/or reserved (all quadrants)
    VIRT -- 虚拟内存大小 (KiB)
任务使用的虚拟内存总量。它包括所有代码、数据和共享库,以及已换出的页面和已映射但未使用的页面。




  • PID:进程的 ID。
  • USER:该进程所属的用户。
  • PR:优先级,数值越小优先级越高。
  • NI:优先级,数值越小、优先级越高。
  • VIRT:该进程使用的虚拟内存的大小,单位为 KB。
  • RES:该进程使用的物理内存的大小,单位为 KB。
  • SHR:共享内存大小,单位为 KB。
  • S:进程状态。
  • %CPU:该进程占用 CPU 的百分比。
  • %MEM:该进程占用内存的百分比。
  • TIME+:该进程共占用的 CPU 时间。
  • COMMAND:进程的命令名。

命令行选项+参数

基本选项

选项 参数 解释
-hv - 帮助/版本信息
-b cEeHiOSs1 Batch-Mode, 使用批处理模式输出, 一般和”-n”选项合用,
用于把 top 命令结果重定向到文件或其他程序中
-d 秒数 指定top每隔多少秒更新一次信息(默认3秒), 参数格式为ss.t(秒数.十分位)
-u|U 用户名 指定用户名显示系统信息, -u选项匹配有效的用户名,-U选项匹配任何用户名
-n 迭代次数 指定top的执行次数
-p 进程ID(PIDs) 查看指定进程的系统信息, 可以添加多个PID,
格式为-pN1 -pN2 ...-pN1,N2,N3,...
-o 域名称 所指定的域将被排序
-w 宽度 指定top命令的输出宽度
-e k|m|g|t|p 任务内存格式化显示(参数分别为千|兆|吉|太|拍字节显示),
也可以在交互模式输入e切换
-E k|m|g|t|p|e 任务总计内存格式化, 单位同上(指界面最上面的总计内存),
也可以在交互模式输入E切换

补充:

  1. 内存换算公式: KiB = kibibyte = 1024 bytes MiB = mebibyte = 1024 KiB = 1,048,576 bytes GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes

一些示例

$ top -h
  procps-ng 3.3.17
Usage:
  top -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]

模式选项

下面的选项均没有参数, 仅仅触发不同的top模式.

选项 解释
-H 触发线程模式, 指示top显示单个线程, 如果没有这个选项, 则将显示每个进程中所有线程的总和
-s 触发安全模式运行top, 避免交互模式出错
-S 触发累积时间模式,列出每一个进程以及其子进程(已死亡)占用的CPU时间
-c 触发命令行/程序名模式, 打开top
-1 触发单一CPU状态模式, -2可以表示
-i 触发空闲进程切换模式, 开启top并显示最后一次更新以来未使用任何CPU的任务

快捷键

按键 事件 备注
? | h 显示交互模式帮助信息  
p (默认)按照CPU占用率排序 大小写均可
q|<C-c> 退出top命令的交互式界面  
<C-z> 挂起top命令  
fg 恢复挂起的top命令执行 fg在终端命令行执行
k 杀死指定的PID对应的进程  

内存查看

free:

小结

重在尝试, 还是要自己试一下才能记住常用的命令.

参考