Linux 命令(9)—— top

news2024/11/16 19:36:42

文章目录

    • 1、命令简介
    • 2、使用方法
    • 3、命令行参数
    • 4、显示摘要
    • 5、进程列表字段
    • 6、交互命令
      • a、全局命令
      • b、摘要区域命令
      • c、任务区域命令
      • d、颜色映射
      • e、可选显示窗口
    • 7、配置文件
      • a、系统配置文件
      • b、个人配置文件

1、命令简介

top提供运行系统的动态实时视图。它可以显示系统摘要信息以及当前由Linux内核管理的任务列表。所显示的系统摘要信息的类型以及为任务显示的信息的类型、顺序和大小都是用户可配置的,并且可以在重新启动期间使配置持久。

2、使用方法

top -hv | -bcEHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]

3、命令行参数

## 常用选项
-p pid   ## 只显示pid进程及其子进程的信息。监视多个则为 -p N1,N2,N3...
-u user  ## 只显示user用户启动的进程。
-d secs  ## 设置显示更新时间间隔为secs秒。默认为3秒。当然用户可以使用s交互命令来改变之。
-1       ## 列出所有CPU的摘要信息。
-H       ## 多线程模式,按线程划分每行。当然用户可以使用H交互命令来改变之。

-n count ## 设置显示次数为count次,然后退出。
-c       ## 显示完整的命令行,而不截断。
-q       ## 该选项将使top没有任何延迟的进行刷新。如果调用程序有超级用户权限,那么top将以尽可能高的优先级运行。
-S       ## 累积模式,连续显示多次更新结果。
-s       ## 安全模式,这将去除交互命令所带来的潜在危险。
-i       ## 忽略空闲和僵死进程。
-b       ## 以批处理模式操作,启动后不显示交互命令提示符,方便将结果输出到其它程序或文件。

4、显示摘要

top - 16:29:43 up  2:35,  7 users,  load average: 0.95, 0.88, 0.70
Tasks: 315 total,   3 running, 310 sleeping,   0 stopped,   2 zombie
%Cpu0  :  2.4 us,  1.4 sy,  0.0 ni, 95.8 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
%Cpu1  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu2  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu3  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu4  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu5  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu6  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
%Cpu7  :  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :  15847.3 total,  12950.4 free,   1328.2 used,   1568.7 buff/cache
MiB Swap:   8012.0 total,   8012.0 free,      0.0 used.  14311.7 avail Mem

## 1、运行时间与负载均衡
## 16:29:43:    系统时间 
## up:           运行时间
## users:       当前登录用户数量
## load average: 5分钟、10分钟、15分钟负载平均值。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

## 2、任务状态与CPU状态,在多核环境中,CPU状态可划分多行
## Tasks:    总进程数或总线程数,取决于是否开启线程模式
## running:  运行进程数
## sleeping:休眠进程数
## stopped:  停止进程数
## zombie:   僵尸进程数
## us:      user,用户空间占用CPU的百分比
## sy:       system,内核空间百分比
## ni:       nice,改变过优先级的进程占用CPU的百分比
## id:       idle,空闲百分比
## wa:       IO-wait,IO等待百分比
## hi:       硬中断百分比
## si:       软中断百分比
## st:       当前虚拟机中的cpu周期被物理机中的实例偷走的比例。

## 3、内存使用情况,默认Mb为单位,交互命令按E切换单位,交换空间使用变动证明内存已不足使用。
## total:       总内存
## free:        剩余内存
## used:       已用内存
## buff/cache: 缓冲与缓存

5、进程列表字段


在这里插入图片描述

字段说明
PID进程id
USER进程所有者
PR动态优先级
NInice值,静态优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=停止 t=调试跟踪 Z=僵尸进程
%CPU上次更新到现在的CPU时间占用百分比
%MEM进程使用的物理内存百分比
TIME+进程使用的CPU时间总计,单位1/100秒
COMMAND进程名称(命令名/命令行)
PPIDParent Process pid,父进程id
UIDEffective User Id,有效用户id,进程的创建者
RUIDReal User Id,实际用户id,当前登录者
RUSERReal User Name
SUIDSaved User Id,设置用户id,用于对外权限的开放,跟文件绑定。
SUSERSaved User Name
GIDGroup Id
GROUPGroup Name
PGRPProcess Group Id
TTYControlling Tty,控制终端
TPGIDTty Process Grp Id
SIDSession Id
nTHNumber of Threads,线程数量
PLast Used Cpu (SMP)
TIMECPU Time,累积CPU用时
SWAPSwapped Size (KiB),交换空间大小
CODECode Size (KiB),代码段所占内存大小
DATAData + Stack Size (KiB),数据段所占内存大小
nMajMajor Page Faults
nMinMinor Page Faults
nDRTDirty Pages Count
WCHANSleeping in Function
FlagsTask Flags <sched.h>,任务标志
CGROUPSControl Groups
SUPGIDSSupp Groups IDs
SUPGRPSSupp Groups Names
TGIDThread Group Id
ENVIRONEnvironment variables,进程环境变量
vMjMajor Faults delta
vMnMinor Faults delta
USEDRes+Swap Size (KiB),已使用的非交换物理内存
nsIPCIPC namespace Inode
nsMNTMNT namespace Inode
nsNETNET namespace Inode
nsPIDPID namespace Inode
nsUSERUSER namespace Inode
nsUTSUTS namespace Inode

详解

PR: Priority 动态优先级
1、priority的值在内核的调度器上表现是会变化的,所以也叫做动态优先级,是进程内核态的一个概念
2、范围从0到139。值越小,优先级越高,越容易被调度器执行。0-99,实时进程(rt)优先级范围。100-139,非实时进程
3、取值rt表示实时进程

NI: Nice Value 优先值、静态优先级
1、nice值也叫做静态优先级,是一个进程用户态的一个概念,除非我们用renice去改它,否则它是不变的。通过NI来影响PR
2、取值范围是-20至19,一共40个级别。负值表示高优先级,正值表示低优先级
3、设置nice值的命令有:nice -n 10 bash ## 启动并设置nice值renice 10 -p pid ## 重新调整进程nice值

VIRT:virtual memory usage 虚拟内存
1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存
1、进程当前使用的内存大小,但不包括swap out
2、包含其他进程的共享
3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory 共享内存
1、除了自身进程的共享内存,也包括其他进程的共享内存
2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
3、计算某个进程所占的物理内存大小公式:RES – SHR
4、swap out后,它将会降下来

DATA
1、真正的该程序要求的数据空间,是真正在运行中要使用的。

6、交互命令

a、全局命令

全局交互命令始终可以在全屏模式和交替显示模式下使用。但是,在安全模式下运行时,这些交互命令中有些是不可用的。如果想知道是否进入了安全模式,请求帮助并查看第二行的系统摘要。

命令说明
or 刷新显示
? | h帮助
=移除显示哪些任务的限制。
0切换是否显示0值
A选择显示开关,可以分开显示每个CPU的视图
B粗体切换
* d | s改变延迟时间间隔
EExtend-Memory-Scale in Summary Area,切换摘要区域内存显示单位
eExtend-Memory-Scale in Task Windows,切换任务区别内存显示单位
gChoose-Another-Window,选择其它显示窗口,在用A后才能使用
HThreads-mode,多线程显示开关
IIrix/Solaris-Mode,在Solaris模式下操作时,任务的CPU使用量将除以CPU总数
* kKill-a-task,输入PID后发送kill信号
q退出
* rRenice-a-Task,调整任务nice值,要求输入PID
W写入配置文件,再次启动top保存当前设置。
XExtra-Fixed-Width,将一些字段的显示宽度固定
YInspect-Other-Output
ZChange-Color-Mapping,改变当前窗口颜色映射
*以星号显示的命令在安全模式中不可用,也不会显示在第1级帮助屏幕上。

示例:按A打开多个CPU窗口,按g选择其它窗口,按Z改变对应窗口颜色,按esc回到主界面

在这里插入图片描述

b、摘要区域命令

摘要区域交互命令始终可以在全屏模式和选择显示模式下使用。它们会影响显示的起始行,并将决定消息和提示的位置。这些命令总是只影响当前窗口。

命令说明
CShow-scroll-coordinates,显示流动坐标轴,y表示多少行,x表示多少列
l切换负载平均/正常运行时间显示
t切换内存/交换使用显示
m切换任务/CPU状态显示
1切换单独CPU状态显示
2NUMA-Nodes/Cpu-Summary toggle
3Expand-NUMA-Node

示例:按l关闭负载均衡显示,按1显示所有CPU状态,按m关闭内存信息显示,按C显示坐标信息

在这里插入图片描述

c、任务区域命令

任务区域交互命令总是在全屏模式下可用。如果当前窗口的任务显示已关闭,则交互命令是不可用的。

命令说明
任务窗口的外观
JJustify-Numeric-Columns toggle,对齐数字列
jJustify-Character-Columns toggle,对齐字符列
b粗体切换
x列高亮切换,某些终端程序高亮不明显。
y行高亮切换
z多色/单色切换
任务窗口内容
c命令行/程序名称切换
f | F字段选择或排序字段
o | OOther-Filtering
S累积时间模式开关
u | U只显示特定用户
VForest-View-Mode toggle,森林视图模式,根据父进程显示进程树
任务窗口大小
iIdle-Process,是否显示空闲进程
n | #Set-Maximum-Tasks,设置显示最大任务数
任务窗口排序
<左移排序字段,将排序列移到左侧,除非当前排序字段是要显示的第一个字段。
>右移排序字段,将排序列移到右侧,除非当前排序字段是显示的最后一个字段。
f | FFields-Management,显示一个单独的屏幕选择字段
RReverse/Normal-Sort-Field,反向/正常排序字段切换
可选窗口模式
- | _显示或者隐藏窗口
* = | +均衡化_(再平衡)窗口
* A可选窗口模式开关
* a | w窗口上下选择
* G选择另一个窗口/字段组
* g更改窗口/字段组名称
*使用星号的交互式命令已经超出了可选窗口模式。

示例:按f选择PID,按s选择为排序字段,按esc回到主界面,按R让排序倒序

在这里插入图片描述

d、颜色映射

按Z时,将显示一个单独的屏幕。该屏幕可以用来在当前窗口或所有四个窗口中更改颜色,然后再按esc返回到顶部显示。

命令说明
应用并退出
q放弃当前的变化并退出

示例:按Z选择颜色映射为红色

在这里插入图片描述

e、可选显示窗口

摘要区域交互命令始终可以在全屏模式和选择显示模式下使用。它们会影响显示的起始行,并将决定消息和提示的位置。这些命令总是只影响当前窗口。

命令说明
- | _显示或者隐藏窗口
* = | +均衡化_(再平衡)窗口
* A可选窗口模式开关
* a | w窗口上下选择
* G选择另一个窗口/字段组
* g更改窗口/字段组名称
*使用星号的交互式命令已经超出了可选窗口模式。

示例:按A开启可选窗口,按a切换窗口,按-隐藏2、3窗口

在这里插入图片描述

7、配置文件

a、系统配置文件

## 系统配置文件不是由top创建的。相反,您可以手动创建这个文件,并将其放在/etc目录中。
cat /etc/toprc
s        # line 1: secure mode switch
5.0      # line 2: delay interval in seconds

b、个人配置文件

## 这个文件被写成’$HOME/.your-name-4-top’+’rc’。
## 使用‘W’交互式命令创建或更新它。如果$HOME变量不存在,top将根据权限尝试将个人配置文件写入当前目录。
cat `$HOME/.your-name-4-top' + `rc'
global   # line  1: the program name/alias notation
  "      # line  2: id,altscr,irixps,delay,curwin
per ea   # line  a: winname,fieldscur
window   # line  b: winflags,sortindx,maxtasks,graph modes
  "      # line  c: summclr,msgsclr,headclr,taskclr
global   # line 15: additional miscellaneous settings
  "      # any remaining lines are devoted to the
  "      # generalized inspect provisions
  "      # discussed below

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/655343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3399平台开发系列讲解(Pinctrl子系统)pinctrl的使用

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、配置 pinctrl二、调用 pinctrl2.1、Iomux 配置2.2、驱动强度配置2.3、上下拉配置沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍pinctrl设备树的使用方法。 一、配置 pinctr…

牛客网专项练习——C语言错题集(6)

文章目录 数组地址的移位C 源程序和函数的关系二维数组值的表示方式&#xff08;n & (n-1)) 0容易出错的 位运算fseek 可以实现的操作 数组地址的移位 个人理解&#xff1a; 这题的 A C 选项的差别应该在优先级上&#xff08;下文有 C 语言运算符优先级表&#xff09;&am…

移动端测试-Adb工具

移动端测试_Adb工具 Adb的基本使用简要介绍通用操作步骤一、连接设备二、断开设备三、安装四、卸载五、抓取日志六、文件传输七、截屏八、清除apk缓存九、查看终端各apk占用内存 Adb的基本使用 简要介绍 adb其实就是移动端的调试工具&#xff0c; 全称为Android Debug Bridge…

chatgpt赋能python:Python设置画笔粗细:从入门到精通

Python设置画笔粗细&#xff1a;从入门到精通 在Python中&#xff0c;画图是非常常见的操作。设置画笔的粗细是其中的一个重要部分。本文将从最基础的设置粗细开始讲起&#xff0c;逐步深入&#xff0c;带您了解Python设置画笔粗细的各种方法。 一、使用pensize()函数 pensi…

【备战秋招】每日一题:5月13日美团春招第三题:题面+题目思路 + C++/python/js/Go/java带注释

为了更好的阅读体检&#xff0c;为了更好的阅读体检&#xff0c;&#xff0c;可以查看我的算法学习博客第三题-火车调度 在线评测链接:P1288 题目描述 塔子哥是一位火车车厢调度员。 这一天&#xff0c;一列带有 n 个编号车厢的列车进站了&#xff0c;编号为 1\rightarrow …

【瑞萨RA_FSP】GPT—— 通用PWM定时器

文章目录 一、PWM简介二、GPT简介三、GPT的框图分析1. 计数器2. 周期设置和周期设置缓冲寄存器3. 时钟输入4. 控制寄存器5. 比较器和比较/输入捕获寄存器6. 中断请求信号7. IO输入输出引脚8. ELC事件输入9. 输出相位切换 一、PWM简介 PWM 的全称是脉冲宽度调制&#xff08;Pul…

chatgpt赋能python:如何安装PyQt5

如何安装PyQt5 Python是现在最受欢迎的编程语言之一。Python与它的第三方库使得开发者能够在不同的领域中编写高质量的代码。因此&#xff0c;Python已经成为了许多开发者的首选之一&#xff0c;而PyQt5则是Python中使用最多的图形界面开发工具之一。在这篇文章中&#xff0c;…

chatgpt赋能python:Python环境安装必知必会

Python环境安装必知必会 Python作为一种高效、易用、广受欢迎的程序语言&#xff0c;在数据分析、人工智能、Web开发等领域都得到了广泛应用。如果您也想学习Python&#xff0c;或者需要开发Python程序&#xff0c;那么必须首先安装Python环境。本文将为您介绍Python环境安装的…

分享!!前端也需要了解的一些技术!!

目录 1、临时路径共享使用 2、关闭指定端口号的进程 1、临时路径共享使用 场景&#xff1a;自己开发中的pc、移动端、app等&#xff0c;由于还在开发中&#xff0c;没有上线&#xff0c;此时有的人需要暂时使用它么&#xff0c;那么就可以创建一个临时路径&#xff0c;共享给…

Anaconda jupyter lab安装及初使用

之前写了一篇&#xff1a; Anaconda、Jupyter的安装部署及使用问题总结 最近又用python比较多&#xff0c;升级了一下本机的anaconda版本&#xff0c;并使用jupyter lab来编写python脚本&#xff0c;本文记录一下升级、使用过程。 安装anaconda 下载安装包 Anaconda3-2023.03…

【Biomechanics】1 Biomechanics as an Interdiscipline

无回到目录第2章 文章目录 1.0 Introduction1.1 Measurement, Description, Analysis, and Assessment1.1.1 Measurement, Description, and Monitoring1.1.2 Analysis1.1.3 Assessment and Interpretation 1.2 Biomechanics and its Relationship with Physiology and Anatomy…

基于flask的web应用开发——搭建一个云盘

目录 0. 前言1. 实现开放下载链接2. 稍加改装3. 效果演示4. 云服务器项目部署 0. 前言 本节利用 flask 开放下载链接 操作系统&#xff1a;Windows10 家庭版 开发环境&#xff1a;Pycahrm Comunity 2022.3 Python解释器版本&#xff1a;Python3.8 第三方库&#xff1a;fla…

Opencv的getRotationMatrix2D函数底层解析

源码 cv::Mat cv::getRotationMatrix2D( Point2f center, double angle, double scale ) {angle * CV_PI/180;double alpha cos(angle)*scale;double beta sin(angle)*scale;Mat M(2, 3, CV_64F);double* m M.ptr<double>();m[0] alpha;m[1] beta;m[2] (1-alpha)*…

chatgpt赋能python:Python怎么装pip库

Python怎么装pip库 Python是一种高级编程语言&#xff0c;由于其简单易学和功能强大&#xff0c;成为众多开发者的选择。但是在开发过程中&#xff0c;需要使用到各种库。pip是Python的软件包管理器&#xff0c;通过pip工具&#xff0c;我们可以轻松地安装和管理Python库。 什…

iOS 单元测试之常用框架 OCMock 详解 | 京东云技术团队

一、单元测试 1.1 单元测试的必要性 测试驱动开发并不是一个很新鲜的概念了。在日常开发中&#xff0c;很多时候需要测试&#xff0c;但是这种输出是必须在点击一系列按钮之后才能在屏幕上显示出来的东西。测试的时候&#xff0c;往往是用模拟器一次一次的从头开始启动 app&a…

chatgpt赋能python:Python怎么让输出不换行

Python怎么让输出不换行 Python是一款具有高度灵活性和扩展性的语言&#xff0c;代码简洁易懂&#xff0c;易上手。在Python编程中&#xff0c;输出的相关操作也是非常常见的。在某些情况下&#xff0c;我们需要让输出内容在同一行显示&#xff0c;这时我们需要使用Python提供…

【Docker】技术架构演进

基本概念 应用&#xff08;Application&#xff09; / 系统&#xff08;System&#xff09; ​ 为了完成一整套服务的一个程序或者一组相互配合的程序群。生活例子类比&#xff1a;为了完成一项任务&#xff0c;而搭建的由一个人或者一群相互配的人组成的团队。 模块&#xff0…

C++【STL】之list的使用

文章目录&#xff1a; list介绍list使用1. 默认成员函数1.1 构造函数1.2 拷贝构造1.3 赋值重载1.4 析构函数 2. 迭代器3. 容量操作4. 数据访问5. 数据修改5.1 插入删除5.2 交换调整清理 6. 其他操作6.1 链表拼接6.2 链表移除6.3 排序6.4 链表逆置 list介绍 list是可以在常数范围…

STM32软件定时器

目录 什么是定时器&#xff1f; 软件定时器优缺点 软件定时器原理 软件定时器相关配置 单次定时器和周期定时器 软件定时器相关 API 函数 1. 创建软件定时器 2. 开启软件定时器 3. 停止软件定时器 4. 复位软件定时器 5. 更改软件定时器定时时间 实操 cubeMX配置 …

chatgpt赋能python:Python设置画布背景颜色

Python设置画布背景颜色 Python语言是一种广泛应用于科学计算、数据处理和数据可视化的高级脚本语言。它之所以如此流行&#xff0c;主要是因为它简单易学&#xff0c;并且具有很强的灵活性。在Python中&#xff0c;我们可以使用各种库来创建图形化界面、游戏和数据可视化应用…