介绍

top命令是Linux下常用得性能分析工具,能够实时的显示系统中各个进程的资源占用状况,类似于平常使用的Windows任务管理器,除此之外,top还提供交互式的界面来筛选可用的信息。下面将分别介绍top命令的输出以及常用操作


统计信息

top命令前五行的输出是当前系统情况整体的统计信息区

top - 20:12:44 up 2 days,  9:49,  9 users,  load average: 0.83, 1.21, 1.58
Tasks: 370 total,   3 running, 367 sleeping,   0 stopped,   0 zombie
%Cpu(s):  9.7 us,  4.9 sy,  0.0 ni, 84.9 id,  0.0 wa,  0.0 hi,  0.4 si,  0.1 st
KiB Mem :  8173496 total,   657292 free,  5163996 used,  2352208 buff/cache
KiB Swap:  9437180 total,  7386364 free,  2050816 used.  2671772 avail Mem

第一行 任务队列信息

top - 20:12:44 up 2 days,  9:49,  9 users,  load average: 0.83, 1.21, 1.58
解释
20:12:44 当前服务器时间
up 2 days, 9:49 系统启动了2天9小时49分钟
9 users 当前有9个用户登录系统
load average: 1.15, 1.42, 1.44 load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况

其中load average代表系统负载,主要代表了在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。

多核CPU的话,满负荷状态的数字为 “1.00 * CPU核数”,即双核CPU为2.00,四核CPU为4.00。

通过以下命令可查看CPU个数以及信息

# 总核数 = 物理CPU个数 X 每颗物理CPU的核数
# 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每个物理CPU中core的个数(即核数)
cat /proc/cpuinfo| grep "cpu cores"| uniq# 查看逻辑CPU的个数
cat /proc/cpuinfo| grep "processor"| wc -l

取得CPU核心数目N,用对应时间的负载值 / N,如果得到的值小于0.7即可无忧。

例如现在我们是4个单核CPU,5分钟的负载值是1.21,用1.21 / 4 ≈ 0.3,说明机器复杂良好,当超过0.7的时候就需要关注看如何处理了

第二行:任务信息

解释
370 total 系统目前进程总数
3 running 运行状态态的进程数量
367 sleeping 休眠状态的进程数量
0 stopped 停止状态的进程数量
0 zombie 僵尸状态的进程数量

系统现在共有370 个进程,其中处于运行中的有3个,367 个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

第三行:CPU状态

%Cpu(s):  9.7 us,  4.9 sy,  0.0 ni, 84.9 id,  0.0 wa,  0.0 hi,  0.4 si,  0.1 st
解释
9.7 us user:用户空间占用CPU的百分比。
4.9 sy system:内核空间占用CPU的百分比。
0.0 ni nice:改变过优先级的进程占用CPU的百分比
84.9 id, idle:空闲CPU百分比
0.0 wa IO-wait:IO等待占用CPU的百分比(iowait)
0.0 hi 硬中断(Hardware IRQ)占用CPU的百分比
0.4 si 软中断(Software Interrupts)占用CPU的百分比
0.1 st 虚拟机管理程序从此虚拟机窃取的时间

第四行:内存状态

KiB Mem :  8173496 total,   657292 free,  5163996 used,  2352208 buff/cache
解释
8173496 total 物理内存总量(≈8G)
657292 free 使用中的内存总量(≈0.6G)
5163996 used 空闲中的内存总量(≈4.9G)
2352208 buff/cache 缓存大小

第五行:swap交换分区信息

KiB Swap:  9437180 total,  7386364 free,  2050816 used.  2671772 avail Mem
解释
9437180 total 交换区总量
7386364 free 空闲交换区总量
2050816 used 使用的交换区总量
2671772 avail Mem 可用内存总量

注:各单位之间转换关系

KiB =千字节= 1024字节
MiB =兆字节= 1024 KiB = 1,048,576字节
GiB = gibibyte = 1024 MiB = 1,073,741,824字节
TiB = tebibyte = 1024 GiB = 1,099,511,627,776字节
PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624字节
EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976字节

各进程状态监控

介绍完上边的系统统计信息后,接下来就是各个进程的状态监控

字段解释

字段 含义
PID 进程ID
USER 进程所有者
PR 进程优先级(priority)
NI nice值,负值表示高优先级,正值表示低优先级
VIRT 进程使用的虚拟内存总量
RES 进程使用的、未被换出的物理内存大小
SHR 共享内存大小
S 进程状态(D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程)
%CPU 上次更新到现在的CPU时间占用百分比
%MEM 进程使用的物理内存百分比
TIME+ 进程使用的CPU时间总计,单位1/100秒
COMMAND 进程名称(命令名/命令行)

对于上面的字段,单独区分下nice值和priority优先级。

  • PR

PR (priority),被称为动态优先级,Priority/PRI 由 OS 内核动态调整,用户不能调整(PRI 值越低,进程执行的优先级越高),用户可通过调整 nice 值 来调整进程优先级,计算方式为:PRI(new) = PRI(old) + nice

  • NI

NICE值用于表示进程优先级的修正数值,其取值范围是-20至19,一共40个级别,由于进程最终的优先级由 PRI + Nice 值共同决定,PRI又不能进行修改,那么就只能通过修改Nice值来影响进程优先级,对应的值越小代表优先级越高,也被称为静态优先级,可以通过renicenice 命令修改


参数介绍

先单独介绍top的命令参数,通过-h查看常用的参数,更详细的还是参考man top

[root@suhaow ~]# top -hprocps-ng version 3.3.10
Usage:top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
参数 说明
-d:Delay-time 间隔秒数
-n:Number-of-iterations 信息更新次数,次数达到退出
-u:User-filter-mode 指定 用户
-p:Monitor-PIDs 指定 pid
-o:Override-sort-field 指定 排序列
-w:Output-width-override 输出宽度

交互命令

输入top命令后,再敲入h可以查看互动命令,可以自己手动敲敲试试效果

  Z,B,E,e   Global: 'Z' colors; 'B' bold; 'E'/'e' summary/task memory scalel,t,m     Toggle Summary: 'l' load avg; 't' task/cpu stats; 'm' memory info0,1,2,3,I Toggle: '0' zeros; '1/2/3' cpus or numa node views; 'I' Irix modef,F,X     Fields: 'f'/'F' add/remove/order/sort; 'X' increase fixed-widthL,&,<,> . Locate: 'L'/'&' find/again; Move sort column: '<'/'>' left/rightR,H,V,J . Toggle: 'R' Sort; 'H' Threads; 'V' Forest view; 'J' Num justifyc,i,S,j . Toggle: 'c' Cmd name/line; 'i' Idle; 'S' Time; 'j' Str justifyx,y     . Toggle highlights: 'x' sort field; 'y' running tasksz,b     . Toggle: 'z' color/mono; 'b' bold/reverse (only if 'x' or 'y')u,U,o,O . Filter by: 'u'/'U' effective/any user; 'o'/'O' other criterian,#,^O  . Set: 'n'/'#' max tasks displayed; Show: Ctrl+'O' other filter(s)C,...   . Toggle scroll coordinates msg for: up,down,left,right,home,endk,r       Manipulate tasks: 'k' kill; 'r' reniced or s    Set update intervalW,Y       Write configuration file 'W'; Inspect other output 'Y'q         Quit

介绍上述中比较常用的几个互动命令:

  • h 显示帮助画面,给出一些简短的命令总结说明
  • k 终止一个进程。
  • i 忽略闲置和僵死进程。这是一个开关式命令。
  • r 重新安排一个进程的优先级别
  • S 切换到累计模式
  • s 改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成m s。输入0值则系统将不断刷新,默认值是5 s
  • f或者F 从当前显示中添加或者删除项目
  • o或者O 改变显示项目的顺序
  • l 切换显示平均负载和启动时间信息
  • m 切换显示内存信息
  • t 切换显示进程和CPU状态信息
  • c 切换显示命令名称和完整命令行
  • M 根据驻留内存大小进行排序
  • P 根据CPU使用百分比大小进行排序
  • T 根据时间/累计时间进行排序
  • W 将当前设置写入~/.toprc文件中
  • q 退出程序

除此之外还有一些对任务区域的操作,都可在man手册中查看到

  Task-Area-defaultsb - Bold hilite      Off (use `reverse')     # 高亮* c - Command line     Off (name, not cmdline) # 完整显示命令行* i - Idle tasks       On  (show all tasks)    J - Num align right  On  (not left justify)  # 数字是否右对齐j - Str align right  Off (not right justify) # 字符是否右对齐R - Reverse sort     On  (pids high-to-low)  # 反转排列顺序* S - Cumulative time  Off (no, dead children) # 累计时间* u - User filter      Off (show euid only)     # 用户名过滤* U - User filter      Off (show any uid)       #V - Forest view      On  (show as branches)   # 展示父子关系x - Column hilite    Off (no, sort field)       #列高亮y - Row hilite       On  (yes, running tasks)   #行高亮z - color/mono       On  (show colors)          #变色

实用操作

高亮显示选中进程

敲击键盘“b”(打开/关闭高亮效果),top的视图变化如下:

高亮选中列

先敲击"b"(打开/关闭高亮效果),再敲击“x”(打开/关闭 排序列的加亮效果)

通过shift+<向左改变排序列,shift+>向右改变排序列,由上图可知道默认是按照CPU占用率排序,敲下shift+>就选择了按照右侧的内存占用率进行排序

想改变排列数据敲"R"即可

显示完整命令

通过top -c参数进入到top即可查看完整COMMAND

也可进入后直接敲"c"即可

显示指定进程信息

先查询要观察进程的PID

[root@suhw ~]# ps aux|grep mysql
root     11500  0.0  0.0 112712   960 pts/2    S+   11:24   0:00 grep --color=auto mysql
mysql    23679  1.2  0.8 3742680 140580 ?      Ssl  Jul20  13:16 /usr/sbin/mysqld

通过top -p 23679进行查看

日后遇到常用的操作再继续添加。

Linux- Top命令查看系统资源状况相关推荐

  1. linux top命令查看内存及多核CPU的使用讲述 [转]

    2019独角兽企业重金招聘Python工程师标准>>> linux top命令查看内存及多核CPU的使用讲述 [转] FROM: http://www.lvtao.net/html/ ...

  2. linux top命令查看内存及多核CPU的使用讲述【转】

    转载一下top使用后详细的参数,之前做的笔记找不见了,转载一下,作为以后的使用参考: 原文地址:http://blog.csdn.net/linghao00/article/details/80592 ...

  3. Linux——top命令查看cpu利用率超过100%

    top命令显示的是程序占用的cpu占用率总和,也就是说如果4核cpu那么cpu最高占用率可达400%,top里显示的是把所有使用率加起来. 运行top后按大键盘1,可以显示每个cpu的使用率 查看一下 ...

  4. linux top命令查看内存及多核CPU的使用讲述

    top进入视图 第一行: 10:08:45 - 当前系统时间 10 days, 3:05 - 系统已经运行了10天3小时5分钟(在这期间没有重启过) 1 users - 当前有1个用户登录系统 loa ...

  5. Linux top命令查看多核CPU每个核心的使用率

    op命令是linux下常用的工具,可以查看各个进程的CPU使用情况.先看一个实例: 这是Ramnode双核VPS的top显示结果: 左上角可以看到CPU的使用率是11.3%,但是看下面的进程,plug ...

  6. linux cpu使用率1200%,linux下用top命令查看cpu利用率超过100%

    今天跑了一个非常耗时的批量插入操作..通过top命令查看cpu以及内存的使用的时候,cpu的时候查过了120%..以前没注意..通过在top的情况下按大键盘的1,查看的cpu的核数为4核. 通过网上查 ...

  7. linux 观察应用使用内存的情况,Linux学习笔记:free和top命令查看系统内存使用情况...

    free 命令 Linux free 命令用于显示内存状态. free 指令会显示内存的使用情况,包括实体内存,虚拟的交换文件内存,共享内存区段,以及系统核心使用的缓冲区等. 语法: free [-b ...

  8. linux top命令 动态查看进程详解

    文章目录 linux top命令 动态查看进程详解以及使用方法 top命令的输出,可分为上下两个部分 上面部分:整个系统的资源的使用状态 下面部分:单个进程的资源使用状态 上面部分详解: 第一行:由三 ...

  9. linux的top命令cpu,在Linux系统下使用top命令查看CPU使用情况

    在Linux系统下,使用top命令查看CPU使用情况. %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st ...

最新文章

  1. 图解粒子群优化算法(PSO)
  2. php注册程序,[PHP初级]手把手教你写注册程序 1
  3. OpenCV图像处理—— 凸包检测
  4. 五分钟,带你彻底掌握 MyBatis缓存 工作原理
  5. Python操作Word文档的节属性和页眉/页脚
  6. node怎么把token放到redis_从零开始手写 redis(八)朴素 LRU 淘汰算法性能优化
  7. 【万字详解+PPT下载】腾讯广告实时策略数据框架建设
  8. s信网页版rver定时任务mysql_DataX Web2.0发布,集成定时任务,支持分布式
  9. android以view建坐标系,android自定义View——坐标系
  10. PIC浅谈--《x86/x64体系探索及编程》试读
  11. mariaDB安装完成后设置root密码等初始化操作
  12. macbook运行移动硬盘中windows及bootcamp下载出错问题的解决
  13. SSIS变量如何获取当前的系统时间(字符串格式年月日)
  14. 迅雷下载电影天堂片源,出现“应版权方要求,文件无法下载”的解决方法
  15. python爬取饿了么评论_爬虫实例:饿了么爬虫
  16. springboot集成camunda
  17. 使用结构体输入参加某会议成员的信息,并计算男女比例C++
  18. 如何添加其他网段的打印机
  19. linux中bash是什么命令,Bash简介 Bash是如何处理命令的
  20. Android 自定义DatePick 只显示年月,日期选择年月

热门文章

  1. Windows远程管理WinRM,Enter-PSSession
  2. AutoCAD for Mac (三维制图软件) v2022
  3. utorrent磁盘负担过重解决办法
  4. 语音朗读中多音字问题
  5. 如何编写命令行运行的程序
  6. 华为ict 防火墙笔记
  7. 联想微型计算机m4350q升级,拆解:高度集成化的联想M4350q_联想ThinkCentre台式电脑_台式电脑评测-中关村在线...
  8. murphy‘s law intro
  9. HTML CSS JS简易画板(含知识点温习)
  10. 同时连接了无线和有线,如何查看当前连接的是哪个