目录

一:top简介

二:启动TOP

2.1第一行含义

2.2第二行含义

2.3第三行含义

2.4第四行含义

2.5第五行含义

2.6第六行含义

 三:top常用按键

3.1按 Z 键更改输出的颜色。我发现这让输出更容易被眼睛看到 

3.2 按1键可查看系统上每个 CPU 内核的图形表示。反复按1以评估 CPU 内核的内核统计信息

3.3P 键:根据CPU使用百分比大小进行排序

3.4M 键:根据驻留内存大小进行排序

3.5N 键:根据启动时间进行排序

3.6c键:切换显示命令名称和完整命令行

3.7h 键:可以获得 top程序的在线帮助信息

3.8k 键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程 

3.9q 键:退出 top 程序

四:top参数及有用的top选项

4.1如果只查找由特定用户启动的进程,则可以使用以下 -u 选项获取该信息

4.2要获取系统上的空闲进程列表,请使用以下 -i 选项

4.3更新间隔设置为以秒为单位的任意值。默认值为 3 秒。像这样将其更改为 5

4.4用 top 定位一个进程

4.5扩展参数

五:一些关于top命令的实用案例

5.1获取要监控的本地服务器ip地址

5.2获取用户空间占用CPU百分比

5.3获取内核空间占用CPU百分比

5.4获取空闲CPU百分比

5.5获取等待输入输出占CPU百分比

5.6用stress进行压力测试

5.7用dd if压力测试,查看内存的使用率

六:htop

6.1安装htop

6.2htop主要有三个部分

6.3htop linux进程监控

6.4atop

6.5nmon

一:top简介

当我检查 Linux 系统(或者甚至对运行其他操作系统的计算机进行故障排除)时,我经常使用 top 命令来检查系统的 RAM 和 CPU 占用率。它为我提供了评估计算机整体健康状况的信息。我在 Linux 之旅的早期就了解了 top 命令,并依靠它让我快速了解服务器或其他 Linux 系统(包括 Raspberry Pi)上正在发生的事情。但 top 命令远比人们看到的要复杂得多。根据其手册页,top 程序提供了正在运行的系统的动态实时视图。它可以显示系统摘要信息以及当前由 Linux 内核管理的进程或线程列表


二:启动TOP

2.1第一行含义

top:当前系统时间

up:系统已经运行的时间

users:当前登录用户

load average:系统平均负载 每1分钟 5分钟 15分钟

2.2第二行含义

total:进程总数

running:正在运行的进程

sleeping:处于睡眠的进程

stopped:终止的进程数

zombie:僵尸进程数

2.3第三行含义

%cpu(s):cpu占用

us:用户空间占用cpu%

sy:内核空间占用cpu% 

 ni:用户进程空间内改变优先级的进程占用cpu%

id:空闲cpu%

wa:等待输入输出的cpu时间%

hi:硬中断占用

si:软中断占用

st:虚拟化占用

2.4第四行含义

KiB Mem:内存占用

total:物理内存总量

free:空闲内存总量

used:已使用的物理内存总量

buff/cache:内核缓存的内存量

2.5第五行含义

KiB Swap:交换空间占用

total:交换区总量

free:空闲交换区总量

used:已使用的交换区总量

avail Mem:缓冲的交换区总量

2.6第六行含义

PID:进程id

USER:进程所有者的用户名

PR:优先级

NI:谦让度值。负值表示高优先级,正值表示低优先级

VIRT:进程使用的虚拟内存总量,单位kb

RES:进程使用的物理内存大小,单位kb

SHR:共享内存大小,单位kb

S:进程状态

%CPU:上次更新到现在的CPU时间占用百分比

%MEM:进程使用的物理内存百分比

TIME+:进程使用的CPU时间总计,单位1/100秒

COMMAND :命令名/命令行


三:top常用按键

3.1按 Z 键更改输出的颜色。我发现这让输出更容易被眼睛看到 

3.2 1键可查看系统上每个 CPU 内核的图形表示。反复按1以评估 CPU 内核的内核统计信息

3.3P 键:根据CPU使用百分比大小进行排序

3.4M 键:根据驻留内存大小进行排序

3.5N 键:根据启动时间进行排序

3.6c键:切换显示命令名称和完整命令行

3.7h 键:可以获得 top程序的在线帮助信息

3.8k 键:根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程 

3.9q 键:退出 top 程序


四:top参数及有用的top选项

top -d:number代表秒数 默认5秒 刷新一次

top -b:以批次的方式执行top

top -b: ‘批量模式’,用来将输出重定向到指定文件,一般配合-n 指定输出几次统计信息
[root@localhost ~]# top -n 3 -b > /tmp/top.tmp

top -c: 显示产生进程的完成命令

top -p: 指定pid 多个pid以‘逗号’分开,只显示指定pid进程的状态

top -i:获取系统上的空闲进程列表

top -n 3:将会在刷新输出3次后退出

4.1如果只查找由特定用户启动的进程,则可以使用以下 -u 选项获取该信息

4.2要获取系统上的空闲进程列表,请使用以下 -i 选项

4.3更新间隔设置为以秒为单位的任意值。默认值为 3 秒。像这样将其更改为 5

4.4用 top 定位一个进程

按Shift+l 按名称查找进程。这会在粗体表标题行上方创建1一个提示。输入您要查找的进程的名称,然后按Enter或Return以查看在新排序的进程列表中高亮显示该进程的实例

4.5扩展参数

D - 不可中断的睡眠态。
R – 运行态
S – 睡眠态
T – 被跟踪或已停止
Z – 僵尸态
%CPU
  自从上一次更新时到现在任务所使用的CPU时间百分比。
%MEM
  进程使用的可用物理内存百分比。
TIME+
  任务启动后到现在所使用的全部CPU时间,精确到百分之一秒。
COMMAND
  运行进程所使用的命令。
  还有许多在默认情况下不会显示的输出,它们可以显示进程的页错误、有效组和组ID和其他更多的信息。
2. 交互命令
  我们之前说过top是一个交互命令。上一节我们已经遇到了一些命令。这里我们会探索更多的命令。
 2.1 ‘h’: 帮助
  首先,我们可以用'h'或者'?'显示交互命令的帮助菜单。   
 2.2 ‘’ 或者 ‘’: 刷新显示
   top命令默认在一个特定间隔(3秒)后刷新显示。要手动刷新,用户可以输入回车或者空格。
 2.3 ‘A’: 切换交替显示模式
  这个命令在全屏和交替模式间切换。在交替模式下会显示4个窗口(译注:分别关注不同的字段):
  Def (默认字段组)
  Job (任务字段组)
  Mem (内存字段组)
  Usr (用户字段组)
  这四组字段共有一个独立的可配置的概括区域和它自己的可配置任务区域。4个窗口中只有一个窗 
    口是当前窗口。当前窗口的名称显示在左上方。(译注:只有当前窗口才会接受你键盘交互命令)   
  我们可以用'a'和'w'在4个 窗口间切换。'a'移到后一个窗口,'w'移到前一个窗口。用'g'命令你 
    可以输入一个数字来选择当前窗口。 
 2.4 ‘B’: 触发粗体显示
  一些重要信息会以加粗字体显示。这个命令可以切换粗体显示。   
 2.5 ‘d’ 或‘s’: 设置显示的刷新间隔
  当按下'd'或's'时,你将被提示输入一个值(以秒为单位),它会以设置的值作为刷新间隔。如果你 
    这里输入了1,top将会每秒刷新。 
 2.6 ‘l’、‘t’、‘m’: 切换负载、任务、内存信息的显示
  这会相应地切换顶部的平均负载、任务/CPU状态和内存信息的概况显示。   
 2.7 ‘f’: 字段管理
  用于选择你想要显示的字段。用'*'标记的是已选择的。 
  上下光标键在字段内导航,左光标键可以选择字段,回车或右光标键确认。
  按'<'移动已排序的字段到左边,'>'则移动到右边。
 2.8 ‘R’: 反向排序
  切换反向/常规排序。
 2.9 ‘c’: 触发命令
  切换是否显示进程启动时的完整路径和程序名。 
 2.10 ‘i’: 空闲任务
  切换显示空闲任务。 
 2.11 ‘V’: 树视图
  切换树视图。 
 2.12 ‘Z’: 改变配色
  按下'Z'向用户显示一个改变top命令的输出颜色的屏幕。可以为8个任务区域选择8种颜色。 
  下面显示的是4中颜色显示的top视图。 
 2.13 ‘z’: 切换彩色显示
  切换彩色,即打开或关闭彩色显示。
  2.14 ‘x’ 或者 ‘y’
  切换高亮信息:'x'将排序字段高亮显示(纵列);'y'将运行进程高亮显示(横行)。依赖于你的显示 
    设置,你可能需要让输出彩色来看到这些高亮。 
 2.15 ‘u’: 特定用户的进程
  显示特定用户的进程。你会被提示输入用户名。空白将会显示全部用户。  
 2.16 ‘n’ 或 ‘#’: 任务的数量
  设置最大显示的任务数量   
 2.17 ‘k’: 结束任务
  top命令中最重要的一个命令之一。用于发送信号给任务(通常是结束任务)。 
 2.18 ‘r’: 重新设置优先级
  重新设置一个任务的调度优先级。
3. 命令行选项
  这些命令行选项与上面讨论的命令大多相同。top的输出可以用命令交互操作,但是你也可以带参 
    数运行top来设置你想要的效果。
 3.1 -b: 批处理模式
  -b选项以批处理模式启动top命令。当你想要在文件中保存输出时是很有用的。
 3.2 -c: 命令/程序名 触发
  如上面所讨论到的命令,这个选项会以上次记住的程序/命令显示的状态显示(是否显示完整路 
    径)。
 3.3 -d: 设置延迟间隔
  设置top的显示间隔(以秒计)。比如。
  $ top -d 1
  将会以1秒的刷新间隔启动top。
 3.4 -i: 切换显示空闲进程
  这个选项设置top命令的上一次记住的相反的'i'状态。
 3.5 -n: 设置迭代数量
  用-n选项,你可以设置top退出前迭代的次数。
  $ top -n 3
  将会在刷新输出3次后退出。
 3.6 -p: 监控特定的PID
  你可以用-p选项监控指定的PID。PID的值为0将被作为top命令自身的PID。
 3.7 -u 或 -U: 用户名 或者 UID
  可以用这些选项浏览

五:一些关于top命令的实用案例

5.1获取要监控的本地服务器ip地址

ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' | awk '{print $2}'

5.2获取用户空间占用CPU百分比

top -b -n 1 | grep Cpu | awk '{print $2}' | cut -f 1 -d "%"

5.3获取内核空间占用CPU百分比

top -b -n 1 | grep Cpu | awk '{print $4}' | cut -f 1 -d "%"

5.4获取空闲CPU百分比

top -b -n 1 |grep "%Cpu" |awk -F" " '{print $8}'

5.5获取等待输入输出占CPU百分比

top -b -n 1 | grep "%Cpu" | awk -F" " '{print $10}'

5.6用stress进行压力测试

stress --cpu 2 --timeout 600
对2个cpu增压,持续时间600s

解决方法:杀掉相关进程

5.7用dd if压力测试,查看内存的使用率

测试前,查看cpu和内存使用率

 模拟持续输入文件,测试CPU和内存的抗压能力

压力测试后,CPU和内存的使用率

找到CPU占用率较高的进程并终止(可以在top操作界面中按k键,然后在列表上方将会出现"PID to signal/kill [default pid =56779]:”的提示信息,根据提示输入指定进程的 PID 号并按 Enter 键,出现"send pid 14195signal [15/sigterm]"的二次确认的提示信息,然后按Enter键确认即可终止对应的进程。)

查看,发现内存已占满 

查看磁盘占用空间,寻找出问题文件夹 

删除问题文件

解决问题后,再次查看cpu和内存的使用率,恢复正常 


六:htop

htop是 Linux/类 Unix 系统的交互式实时进程监控应用程序,也是top 命令的便捷替代品, top 命令是所有 Linux 操作系统上预装的默认进程监控工具 

Htop还有许多其他用户友好的功能,这些功能在top 命令下不可用,它们是:

  • 在 htop 中,可以垂直滚动查看完整进程列表,水平滚动查看完整命令行。
  • top相比,它启动得非常快, 因为它在启动期间不等待获取数据。
  • 在 htop 中,您可以一次杀死多个进程而无需插入其 PID。
  • 在 htop 中,您不再需要输入进程号或优先级值来重新优化进程。
  • “e”打印进程的环境变量集。使用鼠标选择列表项

6.1安装htop

yum install -y epel-release
yum install htop
或者编译安装
wget-Ohtop-3.0.5.tar.gz https://github.com/htop-dev/htop/archive/refs/tags/3.0.5.tar.gz 
tar xvfvz htop-3.0.5.tar.gz
cd htop-3.0.5/
 ./configure
 make
 make install

6.2htop主要有三个部分

 标题,我们可以在其中看到CPU、内存Memory、交换Swap等信息,还显示任务Tasks,  平均负载load average和正常运行时间Uptime。

 按CPU利用率排序的进程列表。

页脚显示了不同的选项,如help、setup、filter tree kill、nice、quit等 

6.3htop linux进程监控

按F2或S进入设置菜单 > 有四列,即设置Setup、左列Left Column、右列Right Column和可用仪表Available Meters。

在这里,您可以配置打印在窗口顶部的仪表、设置各种显示选项、在颜色模式中进行选择以及选择以何种顺序打印哪些列

6.4atop

atop 正在运行的进程或以前正在运行进程的详细信息它还支持永久记录资源利用率 

yum install atop -y

 

参数:

在atop的展示页面也可以输入m(内存)、p(进程)、u(用户)、d(磁盘)、c(进程运行的代码)、v(线程) 进行页面切换

Launch with average-per-second total values以平均每秒总值启动:atop -1
 
Launch with active processes only仅使用活动进程启动:atop -a
 
Launch with command line per process每个进程用命令行启动:atop -c
 
Launch with disk info 使用磁盘信息启动:atop -d
 
Launch with memory info使用内存信息启动:atop -m
 
Launch with network info使用网络信息启动:atop -n
 
Launch with scheduling info使用计划信息启动:atop -s
 
Launch with various info (ppid, user, time)发布各种信息(ppid、用户、时间):atop -v
 
Launch with individual threads使用单个线程启动:atop -y

6.5nmon

 以控制分解信息并根据需要逐一显示(切换)信息

yum install nmon -y

 

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐