优化命令之top——实时显示进程动态/查看进程信息

这篇具有很好参考价值的文章主要介绍了优化命令之top——实时显示进程动态/查看进程信息。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一: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

top -i,linux,云计算

2.1第一行含义

top -i,linux,云计算

top:当前系统时间

up:系统已经运行的时间

users:当前登录用户

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

2.2第二行含义

top -i,linux,云计算

total:进程总数

running:正在运行的进程

sleeping:处于睡眠的进程

stopped:终止的进程数

zombie:僵尸进程数

2.3第三行含义

top -i,linux,云计算

%cpu(s):cpu占用

us:用户空间占用cpu%

sy:内核空间占用cpu% 

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

id:空闲cpu%

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

hi:硬中断占用

si:软中断占用

st:虚拟化占用

2.4第四行含义

top -i,linux,云计算

KiB Mem:内存占用

total:物理内存总量

free:空闲内存总量

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

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

2.5第五行含义

top -i,linux,云计算

KiB Swap:交换空间占用

total:交换区总量

free:空闲交换区总量

used:已使用的交换区总量

avail Mem:缓冲的交换区总量

2.6第六行含义

top -i,linux,云计算

PID:进程id

USER:进程所有者的用户名

PR:优先级

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

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

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

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

S:进程状态

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

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

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

COMMAND :命令名/命令行


三:top常用按键

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

3.9q 键:退出 top 程序

top -i,linux,云计算


四: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 选项获取该信息

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

4.4用 top 定位一个进程

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

top -i,linux,云计算

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}'

top -i,linux,云计算

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

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

top -i,linux,云计算

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

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

top -i,linux,云计算

5.4获取空闲CPU百分比

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

top -i,linux,云计算

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

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

top -i,linux,云计算

5.6用stress进行压力测试

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

top -i,linux,云计算

top -i,linux,云计算

解决方法:杀掉相关进程

top -i,linux,云计算

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

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

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

top -i,linux,云计算

查看,发现内存已占满 

top -i,linux,云计算

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

top -i,linux,云计算

top -i,linux,云计算

删除问题文件

top -i,linux,云计算

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

top -i,linux,云计算


六: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

top -i,linux,云计算

top -i,linux,云计算

top -i,linux,云计算

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。

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

top -i,linux,云计算

6.4atop

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

yum install atop -y

top -i,linux,云计算 

参数:

在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

 top -i,linux,云计算文章来源地址https://www.toymoban.com/news/detail-781643.html

到了这里,关于优化命令之top——实时显示进程动态/查看进程信息的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Top 查看进程状态

    相信每个运维人员都遇到过的事情就是服务器的负载突然飙升,碰到这种情况,大家第一反应一定是登到服务器上,先敲一个top命令看看load average吧。在Linux操作系统中,top是使用最频繁,也是信息比较全的一个命令,它对于所有正在运行的进行和系统负荷提供不断更新的概

    2024年02月16日
    浏览(38)
  • linux下查看某进程内有多少个线程的方法(ps、top、Htop)

    下面记录一下在linux下使用ps、top、Htop等指令查看某进程内有多少个线程的方法; 要想查看某个进程内的线程信息,首先得知道我们要查看的是哪个进程,所以第一步要确认该进程的进程号: 比如我们想查看“EngineServer9500”进程内有多少个线程,首先我们需要得到“EngineS

    2024年02月11日
    浏览(38)
  • linux--top命令查看系统所有详情

    Linux系统可以通过 top 命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高。 一、top命令的第一行“top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00, 0.00”显示的内容依

    2024年02月16日
    浏览(43)
  • Linux - top命令详解(监视进程和Linux整体性能)

    top :运行基本top命令,显示所有进程信息,5秒刷新一次,根据使用占比%CPU排序 top -c :显示整个命令行而不是整个命令名 top -d secs :表示进程界面更新时间(默认5秒) top -n max :循环显示的次数 top -u|U user :指定用户名信息 top -p pid(s) :查看指定进程信息 top -b :批次档模

    2024年02月16日
    浏览(55)
  • Linux学习之内存查看命令free和top

    我用来演示的系统使用 CentOS Linux release 7.6.1810 (Core) ,内核版本是 3.10.0-957.el7.x86_64 。 Linux在进程申请内存的时候,一般都是尽可能给进程内存,因为进程在申请内存的时候有损耗。 free 命令可以看以 k 为单位的内存。 free -m 以 MB 为单位显示内存。 可以看得出 free = total - us

    2024年02月12日
    浏览(45)
  • 【linux】服务器CPU占用50%,top/htop/ps却看不到异常进程?使用unhide可以查看!

    htop发现前32个核全被占满了,但是却找不到对应进程号 sysdig -c topprocs_cpu 发现CPU占用3143.28%,因为是32核,平均每核就是接近100% sysdig -c topprocs_cpu ,可以发现病毒进程号 检查 /etc/sysctl.conf 如果该文件只有一行 fs.file-max = =2097152 则大概率被隐藏 文件 / 进程 类病毒感染,注释掉

    2024年02月03日
    浏览(50)
  • 揭秘高效运维:如何用kubectl top命令实时监控K8s资源使用情况?

    往期精彩: 提升CKA考试胜算:一文带你全面了解RBAC权限控制! kubectl top 是一个用于查看 Kubernetes 集群中资源使用情况的命令。它可以显示节点或Pod的CPU、内存和存储的使用情况。该命令要求正确配置 Metrics Server 并在服务器上工作。 Metrics Server 是 Kubernetes 内置自动缩放管道的

    2024年02月19日
    浏览(49)
  • ubuntu中查看进程并结束进程以查看资源占用命令

    ps命令:可以列出正在运行的进程。ps -e top 显示当前运行程序,动态的。 常用来查看系统资源使用情况和查看占用系统资源最多的进程。top以列形式显示所有的进程,占最多CPU资源的进程会显示在最上面。 Ctrl-C终止 kill:kill命令可以根据进程ID来杀死进程。 可以使用ps -A,

    2024年02月07日
    浏览(47)
  • 【Java可执行命令】(十七)JVM运行时信息动态维护工具 jinfo:一个维护 JVM 相关的配置参数和系统属性的工具,辅助故障排除、诊断和优化 ~

    jinfo 是 Java Development Kit (JDK) 自带的一款命令行工具。它旨在为用户提供进程的运行时信息,特别是与 Java 虚拟机 (JVM) 相关的配置和系统属性。 jinfo 使得用户可以轻松地查看和修改正在运行的 Java 进程的参数,以便进行 故障排除、诊断和优化 。 jinfo 允许用户动态查询和修改

    2024年02月13日
    浏览(50)
  • 在macos上查看当前进程的栈信息

    在调试程序时,如cpu莫名的高或低,一个常用的方式就是打印当前进行的调用栈,然后确认各线程的执行函数是否有异常。 在linux系统中可以使用pstack命令,直接打印各线程的栈信息,可惜在macos上没有该命令。一种解决方式就是将代码迁移到linux平台上进行debug(事实上笔者

    2024年02月01日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包