Linux top命令详解与重点内容阐明

打印 上一主题 下一主题

主题 846|帖子 846|积分 2538

重点阐明

top命令非常强盛,也非常复杂,很难八面见光,也没有必要,这篇文章的目标是先容重点,授人以渔,盼望帮助朋侪们以后遇到文中没有先容的知识点也能闻一知十。
本文内容也比较多,重点关注下面的内容即可,其他的需要了再回过头来看也不迟。

  • 理解系统负载load average
  • 理解VIRT、RES、%Mem内存
  • 理解%Cpu参数
  • 知道怎么添加删除参数(F、f)
  • 了解几个常用的交互命令(M、P、H、m、u、o、n、d等)
  • 了解man top,对top有肯定了解了,检察对应文档就更轻松了,可以确定差别系统的具体细节
学习是为了应用,先看一个最常用的简单例子,如何找到占用cpu最多的线程?

  • 实行top
  • 输入交互命令H,进入线程模式
  • 输入交互命令P,按CPU使用率排序

线程模式下,PID就是线程id。通过线程id,在团结线程dump我们就可以定位对应的线程代码了。
根本信息


值寄义13:54:09当前时间up 110days,34min系统运行时间1 user当前登任命户数load average: 0.24, 0.05, 0.02系统负载,即使命队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到如今的平均值 这里面最紧张的信息就是load average,平均负载,大致意思就是逻辑cpu上等待实行的task队列数量。
如何判定负载高呢?
通常模式下,load average统计的是全部task队列的数量,全部,需要除以逻辑CPU的数量,如果这个值大于等于3就阐明负载偏高。
例如:load average的值为6,逻辑cpu的核心数为4,6/4=1.5,小于3,阐明cpu负载正常,瓶颈不在CPU上。
可以通过下面命令,检察cpu相干信息。
  1. cat /proc/cpuinfo
  2. # 查看cpu物理核数
  3. cat /proc/cpuinfo | grep "physical id" | sort | uniq|wc -l
  4. # 查看cpu逻辑核心数
  5. cat /proc/cpuinfo | grep "processor" |wc -l
  6. # 查看cpu核心数
  7. cat /proc/cpuinfo | grep "cores"|uniq
  8. # 查看cpu型号
  9. cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
复制代码
可以通过交互命令l(小写L)来显示隐蔽该行信息。
历程(使命)信息

值寄义total历程总数running正在运行的历程数,Rsleeping就寝的历程数,Sstopped停止的历程数,Tzombie僵尸历程数,Z cpu占用信息%Cpu(s)

值寄义0.5 us用户空间占用CPU百分比1.4 sy内核空间占用CPU百分比0.0 ni用户历程空间内改变过优先级的历程占用CPU百分比98.1 id空闲CPU百分比0.0 wa等待输入输出的CPU时间百分比0.0 hi硬件CPU停止占用百分比0.0 si软停止占用百分比0.0 st虚拟机占用百分比 在交互模式下,我们可以通过数字1来显示每一个逻辑cpu的信息。

内存信息

值寄义4002264 total物理内存总量1213228 free空闲内存总量1703096 used使用的物理内存总量1085940 buff/cache用作内核缓存的内存量 buffer缓冲区,通常是文件的meta信息,cache是缓存,通常是内存页page。
可以通过下面命令检察内存具体信息:
  1. # 查看内存信息
  2. cat /proc/meminfo
  3. free -h
复制代码
可以通过交互命令m切换显示内存信息的格式。

交换内存信息

参数寄义1942896 total交换区总量1942896 free空闲交换区总量92.2 used使用的交换区总量1992616 avail Mem可用交换区总量 每列寄义阐明

参数寄义PID历程idUSER历程全部者PR历程优先级,PR = 20 + NI,[-20,19] ,默认20NInice好人值,值越大,越容易被插队,优先级越低和PR相反,[-20,19],默认0VIRT历程使用的虚拟内存总量,VIRT=SWAP+RESRES历程使用的、未被换出的物理内存巨细,RES=CODE+DATA,和%MEM对应SHR共享内存巨细S历程状态,D=不可停止的就寝状态 R=运行 S=就寝 T=跟踪/停止 Z=僵尸历程 I=空闲历程%CPU前次更新到如今的CPU时间占用百分比%MEM历程使用的物理内存百分比TIME+历程使用的CPU时间总计,精度1/100秒COMMAND历程名称(命令名/命令行),可以通过交互命令c来切换检察完备命令行 有几个参数重点说一下:

  • %CPU:寻常模式下,可以大于100%,表现有多线程利用了多个cpu,比如4个逻辑cpu最多能跑到400%,表现4个逻辑CPU都跑满了
  • VIRT:历程使用的库、代码、数据,以及malloc、new分配的堆空间和分配的栈空间,如申请100M,就算只使用1M,这个值也是100M
  • RES:历程当前使用的内存巨细,包括使用中的malloc、new分配的堆空间和分配的栈空间(不包括swap out),申请100M,使用1M,这个值就是1M
上面这些参数不是全部的参数,可以通过交互命令F或者f添加删除参数。

有4个窗口,默认只有一个Def窗口:

  • Def:按 %CPU 排序
  • Job:按PID排序
  • Mem:按 %MEM 排序
  • Usr:按用户字段排序
设置命令:

  • 带星号的表现当前要显示的参数
  • 可以通过上下箭头(↑↓)控制选中
  • 可以通过d或者space(空格)设置是否显示
  • 可以通过s设置排序字段
  • 可以通过左右箭头(← →)设置选中整行,然后通过上下箭头(↑↓)调整参数显示顺序
  • 可以通过q或者esc退出设置
  • 可以通过a(下一个窗口)或w(下一个窗口)设置要设置的窗口
交互命令

top有大量交互命令,前面我们也先容了一些,我们可以在top命令下通过h或者?来检察这些交互命令:

参数寄义k停止一个历程,默认使用15信号,如果不能正常结束那就使用信号9强制结束该历程,在安全模式中此命令被屏蔽r设置nice值i忽略闲置和僵死历程q退出步调S切换到累计模式d或s改变两次革新之间的延迟时间,单位为秒f或者F从当前显示中添加或者删除参数o或者O设置过滤条件,o不区分巨细写,O区分巨细写u或者U根据用户过滤,u不区分巨细写,U区分巨细写n或#设置显示的历程数量,通常我们只关心占用资源最多的几个,所以可以修改为3或者5l(小L)切换显示平均负载和启动时间信息m切换显示内存信息,可以切换为进度条模式,能直观看出内存占比t切换显示历程和CPU状态信息c切换显示命令名称和完备命令行x高亮排序字段y高亮运行中使命Running使命M根据驻留内存巨细进行排序P根据CPU使用百分比巨细进行排序T根据时间/累计时间进行排序W将当前设置写入~/.toprc文件中A多窗口模式R反向排序H线程模式,列表是线程,而不是历程V显示历程父子关系Z颜色设置Ctrl+L擦除并且重写屏幕Ctrl+o检察当前过滤条件 多窗口模式

前面我们已经先容了,top有4个窗口

  • Def:按 %CPU 排序
  • Job:按PID排序
  • Mem:按 %MEM 排序
  • Usr:按用户字段排序
默认使用Def窗口全屏显示模式,我们可以是用命令A切换到多窗口模式。
可以通过:a、w控制窗口,g输入窗口号选择窗口:

颜色设置


颜色设置也可以根据差别窗口(Def、Job、Mem、Usr)设置。

  • S = Summary Data:S设置汇总区域颜色
  • M = Messages/Prompts:M设置交互提示信息区域颜色
  • H = Column Heads:H设置参数头区域颜色
  • T = Task Information:T设置信息body区域颜色
可以通过a或者w切换窗口(Def、Job、Mem、Usr),设置完成回车保存退出,q放弃退出。
当然要每次进入生效,还得W就修改保存到设置文件。
命令参数

除了使用交互命令模式,我们可以直接在top实行的时候指定参数:
参数寄义-c显示完备的命令行-b以批处理惩罚模式显示步调信息,团结重定向可以输出到文件-S以累积模式显示步调信息-H以线程模式显示-n 2表现更新两次后停止更新显示-d 3设置信息更新周期为3秒-p pid显示历程号为139的历程信息,CPU、内存占用率等-o %CPU设置排序字段
  1. # 每10秒刷新一次,刷新5次,输出pid为119的top信息
  2. top -d 10 -b -n 5 -p 119 >> top-info.txt
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表