Linux 进程管理工具top ps

news2024/11/28 21:45:31

概述

        topps 是 Linux 系统中两个非常重要的用于管理和监控进程的命令工具。以下是它们的主要功能和区别:

top:

动态视图:top 提供了一个实时动态更新的视图,能够持续显示系统中当前正在运行的进程信息及其资源占用情况。

系统性能监控:除了显示进程信息外,top 还可以显示系统的整体性能指标,如平均负载(uptime,load average)、CPU使用率(%CPU)、内存使用量(%MEM)等。

更新频率:默认情况下,top命令会定期(通常是3秒钟)刷新输出,更新进程列表和系统状态。 top -d 2

ps:

静态视图:ps 命令在执行瞬间提供一个进程状态的快照,它不会像 top 那样持续刷新,一次性输出指定时刻的进程信息。

详细信息:ps 可以列出大量的进程详细信息,包括进程ID(PID)、父进程ID(PPID)、进程状态、CPU利用率、内存占用、启动时间和命令行等。

定制化输出ps 支持多种参数组合,可以灵活定制输出格式和选择要显示的进程,例如通过 -ef 参数查看全部进程的详细信息,或者通过 -aux 查看系统中所有用户的进程等。

 1.top命令

 top命令的输出如下

  • 第一行:系统运行时间和平均负载

当前时间、系统已运行时间、当前登录用户的数量、最近5、10、15分钟内的平均负载

  • 第二行:任务

任务的总数、运行中(running)的任务、休眠(sleeping)中的任务、停止(stopped)的任务、僵尸状态(zombie)的任务

 

  • 第三行:cpu状态
字段字段释义
ususer: 运行(未调整优先级的) 用户进程的CPU时间
sysystem: 运行内核进程的CPU时间
niniced:运行已调整优先级的用户进程的CPU时间
ididle:空闲时间
waIO wait: 用于等待IO完成的CPU时间
hi处理硬件中断的CPU时间
si处理软件中断的CPU时间
st这个虚拟机被hypervisor偷去的CPU时间(译注:如果当前处于一个hypervisor下的vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
  • 第四行:内存

全部可用内存、已使用内存、空闲内存、缓冲内存

  • 第五行:swap

全部、已使用、空闲和缓冲交换空间

  • 第七行至N行:各进程任务的的状态监控
字段释义
PID进程ID,进程的唯一标识符
USER进程所有者的实际用户名
PR进程的调度优先级。这个字段的一些值是'rt'。这意味这这些进程运行在实时态。
NI进程的nice值(优先级)。越小的值意味着越高的优先级。负值表示高优先级,正值表示低优先级
VIRT

virtual memory usage 虚拟内存,进程使用的虚拟内存。进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

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

RES

resident memory usage 常驻内存,驻留内存大小。驻留内存是任务使用的非交换物理内存大小。进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

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

SHR

SHR:shared memory 共享内存

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

S

这个是进程的状态。它有以下不同的值:

  • D - 不可中断的睡眠态。
  • R – 运行态
  • S – 睡眠态
  • T – 被跟踪或已停止
  • Z – 僵尸态
%CPU自从上一次更新时到现在任务所使用的CPU时间百分比。%CPU显示的是进程占用一个核的百分比,而不是整个cpu(N核)的百分比,有时候可能大于100,那是因为该进程启用了多线程占用了多个核心,所以有时候我们看该值得时候会超过100%,但不会超过总核数*100
%MEM进程使用的可用物理内存百分比
TIME+任务启动后到现在所使用的全部CPU时间,精确到百分之一秒
COMMAND运行进程所使用的命令。进程名称(命令名/命令行)

 2、交互命令

Z:改变颜色;B:加粗

t:显示和隐藏任务/cpu信息;m:内存信息

1:监控每个逻辑CPU的状况;

f:进入字段显示配置模式,可增加或者移除显示字段,按相应的字母新增或去除;o:进入字段顺序设置模式,可配置显示位置顺序,按相应的字母往下移动,按“shift+相应的字母”往上移动         ---------常用

F:进入字段排序配置模式,可设置排序的字段;

R:正常排序/反向排序;

s:设置刷新的时间--------常用

u:输入用户,显示用户的任务

i:忽略闲置和僵死进程。这是一个开关式命令。

r:重新安排一个进程的优先级别。系统提示用户输入需要改变的进程PID以及需要设置的进程优先级值。输入一个正值将使优先级降低,反之则可以使该进程拥有更高的优先权。默认值是10。

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

M:根据驻留内存大小进行排序。-------------常用

P:根据CPU使用百分比大小进行排序。-----------常用

H:显示线程

3、常用参数与命令

d:指定每两次屏幕信息刷新之间的时间间隔。当然用户可以使用s交互命令来改变之。

p:通过指定监控进程ID来仅仅监控某个进程的状态。

top –p PID

-H: 设置线程模式

显示某个进程所有活跃的线程消耗情况

top -H -p pid

按f、再按j把P调出来,P代表”Last used CPU”

 4.进程查看ps

  • aux
    a:显示一个终端所有的进程
    u:显示进程的归属用户及内存使用情况
    x:显示没有关联控制终端的进程
  • axjf
    j:显示进程归属的进程组id、会话id、父进程id
    f:以ascii的形式显示出进程的层次关系

举例aux 

 

  • USER:进程是哪个用户产生的

  • PID:进程的身份证号码

  • %CPU:指进程对CPU的占用率

  • %MEM:进程占用内存的百分比

  • VSZ:进程使用虚拟内存的大小

  • RSS:进程使用物理内存的大小

  • TTY:进程关联的终端

  • STAT:进程当前状态

  • START:进程的启动时间

  • TIME:进程运行的时间

  • COMMAND:当前进程执行的是哪个程序

 举例axjf

PPID:当前进程父进程的id
PID:当前进程的id
PGID:当前进程所在的进程组的ID
SID:进程所在的会话的ID
TTY:进程所关联的终端
TPGID:判断进程是否为守护进程(-1则为守护进程)

STAT:进程当前状态
UID:用户ID,记录进程是哪个用户启动的
TIME:进程运行的时间
COMMAND:记录进程之间的层次关系(和上边不同)

使用场景

  • 关注进程本身,使用aux
  • 关注进程之间的关系,用axjf

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

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

相关文章

【蓝桥杯-单片机】基于定时器的倒计时程序设计

基于定时器的倒计时程序 题目如下所示: 实现过程中遇到的一些问题 01 如何改变Seg_Buf数组的值数码管总是一致地显示0 1 2 3 4 5 首先这个问题不是在main.c中关于数码管显示部分的逻辑错误,就是发生在数码管的底层错误。 检查了逻辑部分&#xff…

[Labtools 27-1429] XML parser encountered a problem in file

平台:Vivado2108.3 最近在使用vivado的debug过程中发现,编译好工程后打开open hardware manager出现如下错误。 [Labtools 27-1429] XML parser encountered a problem in file E:/githome/xxxx/hw_1/hw.xml at line 1 : XML character encoding not su…

C语言结构体类型,结构体变量的创建和初始化,结构中存在的内存对齐

1.语言结构体类型 结构是⼀些值的集合,这些值称为成员变量。结构的每个成员可以是不同类型的变量。 声明 struct tag {member-list; }variable-list; 例如声明一本书: struct Book {char name[20]; //书名char author[20]; //作者int price; //定价…

快速入门uniapp-day03

个人名片: 😊作者简介:一名大二在校生 🤡 个人主页:坠入暮云间x 🐼座右铭:给自己一个梦想,给世界一个惊喜。 🎅**学习目标: 坚持每一次的学习打卡 文章目录 什么是标签栏…

第7篇:全加器的Signal Tap调试

Q:上一篇里我们对全加器进行了功能仿真,这次我们用Quartus软件里的Signal Tap Logic Analyzer工具对全加器进行调试。 A:Signal Tap Logic Analyzer是Quartus Prime设计软件中自带的系统级调试工具,它可以在FPGA设计中采集和显示…

halcon颜色提取

在Halcon中,颜色提取通常用于从图像中提取特定颇具的区域或对象。 将输入的 RGB 颜色空间转换为 HSV * 根据颜色提取想要的目标 for Index:1 to 2 by 1read_image (Image, cableIndex)* 获取一个三通道图像中每个通道的图像* 红色通道(R)、绿…

Linux:Gitlab:16.9.2 创建用户及项目仓库基础操作(2)

我在上一章介绍了基本的搭建以及邮箱配置 Linux:Gitlab:16.9.2 (rpm包) 部署及基础操作(1)-CSDN博客https://blog.csdn.net/w14768855/article/details/136821311?spm1001.2014.3001.5501 本章介绍一下用户的创建,组内设置用户&…

STP环路避免实验(华为)

思科设备参考:STP环路避免实验(思科) 一,技术简介 Spanning Tree Protocol(STP),即生成树协议,是一种数据链路层协议。主要作用是防止二层环路,并自适应网络变化和故障…

Linux-Arm环境下配置编译qt-everywhere及交叉编译环境

前言 最近在搞交叉编译的事,手上拿了个同事的香橙派玩交叉编译,现在来到了第一步,就是先在arm上配置qt的开发环境。当然了Qt没有直接提供qt on arm,而是需要自行在arm环境下编译一个qt环境出来,所以这里需要使用到qt提…

Ubuntu---之命令学习

方便于作者自用的命令手册,不喜勿喷 ls ls是查看指定路径下的文件信息,可以是相对路径也可以是绝对路径 使用参数: -a:列出全部文件(包含隐藏文件,如.bashrc)-l:列出文件的全部信…

【智能家居】东胜物联提供软硬一体化智能家居解决方案,助企业提高市场占有率

背景 随着智能家居市场的不断壮大,越来越多的消费者开始享受到它带来的便捷和效益。现在,他们可以通过远程或语音控制设备进行个性化设置,比如调节照明和温度,让生活变得更加舒适和智能化。 根据SPER市场研究,预计秘…

K8s的Pod出现Init:ImagePullBackOff问题的解决,(以calico网络插件为例)

问题描述: 对于这类问题的解决思路应该都差不多,本文以calico插件安装为例,发现有个Pod的镜像没有pull成功 第一步:查看这个pod的描述信息 kubectl describe pod calico-node-t9rql -n kube-system从上图发现是docker拉取"…

【Linux】Linux开发工具-vim / 编译器-gcc/g++ / 调试器-gdb / git操作 / 项目自动化构建工具-make/Makefile

主页:醋溜马桶圈-CSDN博客 专栏:Linux_醋溜马桶圈的博客-CSDN博客 gitee:mnxcc (mnxcc) - Gitee.com 目录 1.在Linux写自己的第一个程序 1.1 nano指令 1.2 nano指令的使用 1.2.1 介绍 1.2.2 演示 1.2.2.1 创建.c文件 1.2.2.2 nano cod…

windows下的IDEA运用Scala 编写的 Apache Spark 应用程序

目录 一.环境要求 虚拟机环境 1.linux操作系统 2.jdk 3.Hadoop环境 4.spark 5.scala Windows环境 1.jdk 2.Hadoop(同上) 3.Scala 4. 安装winutils 二.IDEA的安装 idea下载 1、网站 2、下载 3、 安装 idea的配置 1.汉化 2.下载scala…

Windows电脑上如何进行硬盘分区操作!

在Windows操作系统环境下,对电脑硬盘进行分区是一种常见的硬盘管理手段,它可以帮助用户更好地组织和管理存储空间,确保操作系统、应用程序和用户数据各有所属。本文将详细介绍在Windows PC上进行硬盘分区的步骤,适用于Windows 7到Windows 11等不同版本的操作系统。 步骤一:…

C# visual studio 2022 学习2

类成员: 1.字段成员 字段只是类中声明的一个变量,用来在对象中存储信息。 (1).静态字段 使用static关键字修饰的就是静态字段,静态字段属于类而不属于某个类实例,对它的访问使用“类名.静态字段名” &…

el-tree 设置默认展开指定层级

el-tree默认关闭所有选项&#xff0c;但是有添加或者编辑删除的情况下&#xff0c;需要刷新接口&#xff0c;此时会又要关闭所有选项&#xff1b; 需求&#xff1a;在编辑时、添加、删除 需要将该内容默认展开 <el-tree :default-expanded-keys"expandedkeys":da…

JS+CSS3点击粒子烟花动画js特效

JSCSS3点击粒子烟花动画js特效 JSCSS3点击粒子烟花动画js特效

大数据技术学习笔记(十三)—— HBase

目录 1 Hbase 概述1.1 Hbase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型 1.3 HBase 基本架构 2 HBase Shell 操作2.1 基本操作2.2 namespace 操作2.3 表操作 3 HBase 原理深入3.1 RegionServer 架构3.2 HBase 写流程3.3 MemStore Flus…

【技术栈】Redis 企业级解决方案

​ SueWakeup 个人主页&#xff1a;SueWakeup ​​​​​​​ 系列专栏&#xff1a;学习技术栈 ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ ​​​​​​​ 个性签名&…