Linux ps与top命令

这两个命令都是查看系统进程信息的命令,但是用处有点儿不同

1.ps命令--提供系统过去信息的一次性快照

也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或者ps lax

[root@tao ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 125188 3792 ? Ss 17:12 0:00 /usr/lib/systemd/systemd --s
root 2 0.0 0.0 0 0 ? S 17:12 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 17:12 0:00 [ksoftirqd/0]
root 5 0.0 0.0 0 0 ? S< 17:12 0:00 [kworker/0:0H]
root 7 0.0 0.0 0 0 ? S 17:12 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 17:12 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 17:12 0:00 [rcu_sched]
root 10 0.0 0.0 0 0 ? S 17:12 0:00 [watchdog/0]
解释如下:
VSZ--进程的虚拟内存大小
RSS--驻留集的大小,可以理解为内存中页的数量
TTY--控制终端的ID
STAT--也就是当前进程的状态,其中S-睡眠,s-表示该进程是会话的先导进程,N-表示进程拥有比普通优先级更低的优先级,R-正在运行,D-短期等待,Z-僵死进程,T-被跟踪或者被停止等等
STRAT--这个很简单,就是该进程启动的时间
TIME--进程已经消耗的CPU时间,注意是消耗CPU的时间
COMMOND--命令的名称和参数
而]#ps lax  可以看到父进程,谦让值以及该进程正在等待的资源等待

ps

一:ps -l

查看属于自己这次登录的PID与相关信息列出来(只与自己的bash有关)

F:代表这个进程标志(process flags),说明这个进程的权限,常见号码有:

若为4表示此进程的权限为root;

若为1则表示此子进程仅可进行复制(fork)而无法执行(exec);

S:代表这个进程的状态(STAT),主要的状态有:

R(Running):该进程正在运行中;

S(Sleep):该进程目前正在睡眠状态(idle),但可以被唤醒(signal);

D:不可被唤醒的状态,通常这个进程可能在等待I/O的情况(ex>打印);

T:停止状态(stop),可能是在工作控制(后台暂停)或出错(traced)状态;

Z(Zombie):“僵尸”状态,该进程已经终止但却无法被删除至内存外。

UID/PID/PPID:代表此进程被该UID所拥有的/进程的PID号码/此进程的父进程PID号码。

C:代表CPU使用率,单位为百分比。

PRI/NI:Priority/Nice的缩写,代表此进程被CPU所执行的优先级,数值越小代表此进程越快被CPU执行。

ADDR/SZ/WCHAN:都与内存有关,ADDR是kernel function,指出该进程在内存的哪个部分,如果是个running的进程,一般会显示“—”。SZ代表此进程用掉多少内存。WCHAN表示目前进程是否在运行中,同样,若为“—”表示正在运行中。

TTY:登录者的终端位置,若为远程登录使用动态终端接口(pts/n)。

TIME:使用CPU的时间,注意,是此进程实际花费CPU运行的时间,而不是系统时间。

CMD:就是command的缩写,造成此程序的触发进程的命令为何。

ps aux

查看系统所有进程数据(静态) USER:该进程属于哪个用户账号的;

PID:该进程的进程标识符;

%CPU:该进程使用掉的CPU资源百分比;

%MEM:该进程所占用的物理内存百分比;

VSZ:该进程所占用的虚拟内存量(KB);

RSS:该进程所占用的固定的内存量(KB);

TTY:该进程在哪个终端机上面运行,若与终端机无关则显示?另外,tty1~tty6是本机上面的登录者程序,若为pts/0等的,则表示为由网络连接进主机的进程; STAT:该进程目前的状态,状态显示与ps -l的S标识相同(R/S/T/Z);

TIME:该进程实际使用CPU的时间;

COMMAND:该进程的实际命令。

2.top命令反应的是系统进程动态信息,默认10s更新一次

[root@localhost ~]# top
top - 16:41:49 up 9 days, 6:30, 8 users, load average: 0.00, 0.02, 0.05
Tasks: 575 total, 1 running, 574 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 13191878+total, 12246240+free, 4453952 used, 5002420 buff/cache
KiB Swap: 13107200+total, 13107200+free, 0 used. 12622788+avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
37085 root 20 0 158124 2684 1536 R 0.7 0.0 0:00.26 top
2273 gdm 20 0 1312940 20736 14060 S 0.3 0.0 3:04.03 gnome-settings-
32432 jira 20 0 20.381g 2.530g 30244 S 0.3 2.0 11:18.26 java
1 root 20 0 197684 10896 4076 S 0.0 0.0 2:19.45 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.50 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.18 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.50 migration/0
顶部始终显示的是系统当前最活跃的进程,此时还可以接受用户的键盘输入向进程发送信号等待
ps和top都是从/proc目录下读取进程的状态信息,内核把当前系统进程的各种有用信息都放在这个伪目录下。
 
二:top (动态) 

统计信息区前五行是系统整体的统计信息。

第一行是任务队列信息,同 uptime 命令的执行结果。其内容如下:

16:41:49                      当前时间

up 9 days  ,6:30          开机到目前为止所经过的时间

8 users                          当前登录用户数

0.00, 0.03, 0.05            系统负载,即任务队列的平均长度。三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。

第二行为进程信息,内容如下:

Tasks:  575 total       进程总数

1 running                正在运行的进程数

574sleeping             睡眠的进程数

0 stopped               停止的进程数

0 zombie                 僵尸进程数

第三行为CPU信息,当有多个CPU时,这些内容可能会超过两行。内容如下:

Cpu(s):

0.0%us                      用户空间占用CPU百分比

0.0% sy                     内核空间占用CPU百分比

0.0% ni                      用户进程空间内改变过优先级的进程占用CPU百分比

100.0% id                      空闲CPU百分比

0.0% wa                     等待输入输出(IO)的CPU时间百分比

0.0% hi                      cpu处理硬件中断的时间;

0.0% si                      cpu处理软中断的时间;

第四行为内存信息,内容如下:

Mem: 1034872k total          物理内存总量

974264k used                    使用的物理内存总量

60608k free                       空闲内存总量

226140k buffers                 用作内核缓存的内存量

第五行为SWAP信息

Swap: 1534072k total        交换区总量

0used                               使用的虚拟内存总量

1534072k free                   空闲交换区总量

548268k cached                 缓冲的交换区总量。

第六行往后是进程列表,常见的这几列的意义分别为:

PID(进程号), USER(运行用户),PR(优先级),NI(任务nice值),VIRT(虚拟内存用量),RES(物理内存用量), SHR(共享内存用量),S(进程状态),%CPU(CPU占用比),%MEM(内存占用比),TIME+(累计CPU占用时间)。

除了这些信息之外,top还提供了很多命令能帮我们更好的解读这些信息,例如按”M”键可以按内存用量进行排序;

按”P”可以按CPU使用量进行排序,这样一来对于分析系统瓶颈很有帮助;此外,

按“f”可以进入交互页面,选择指定的列显示;

”r”可以改变一个进程的nice值;”k”可以向一个进程发信号;

”z”可以使用彩色显示。进程信息区统计信息区域的下方显示了各个进程的详细信息。

首先来认识一下各列的含义。

序号    列名    含义

a    PID       进程id

b    PPID      父进程id

c    RUSER     Real user name

d    UID       进程所有者的用户id

e    USER      进程所有者的用户名

f    GROUP     进程所有者的组名

g    TTY       启动进程的终端名。不是从终端启动的进程则显示为 ?

h    PR        优先级

i    NI        nice值。负值表示高优先级,正值表示低优先级

j    P         最后使用的CPU,仅在多CPU环境下有意义

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

l    TIME     进程使用的CPU时间总计,单位秒

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

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

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

p    SWAP     进程使用的虚拟内存中,被换出的大小,单位kb。

q    RES      进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

r    CODE     可执行代码占用的物理内存大小,单位kb

s    DATA     可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb

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

u    nFLT     页面错误次数

v    nDRT     最后一次写入到现在,被修改过的页面数。

w    S        进程状态。

x    COMMAND  命令名/命令行

y    WCHAN    若该进程在睡眠,则显示睡眠中的系统函数名

z    Flags    任务标志,参考 sched.h

D=不可中断的睡眠状态

R=运行

S=睡眠

T=跟踪/停止

Z=僵尸进程

默认情况下仅显示比较重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%  CPU、%MEM、TIME+、COMMAND  列。可以通过下面的快捷键来更改显示内容。

更改显示内容通过 f 键可以选择显示的内容。按 f 键之后会显示列的列表,按 a-z  即可显示或隐藏对应的列,最后按回车键确定。

相关链接:https://www.cnblogs.com/zhoug2020/p/6336453.html

Linux ps与top命令的更多相关文章

  1. ps与top命令简单介绍

    Linux中ps与top命令 这两个命令都是查看系统进程信息的命令,但是用处有点儿不同 1.ps命令--提供系统过去信息的一次性快照 也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或 ...

  2. linux ps查看进程命令

    linux ps查看进程命令ps命令作用:将某个时间点的程序运作情况撷取下来 实例: [root@linux ~]# ps aux [root@linux ~]# ps -lA [root@linux ...

  3. ps、top命令查找不到进程的解决方案

    netstat -anpt发现一个奇怪的连接,但是ps和top命令确查不到此进程,这很可能是因为因为ps和top命令被替换了导致这些进程被过滤掉了.因此我这里有个脚本专门查找出来隐藏的进程 #!/us ...

  4. Linux 查看进程资源--ps、top命令

    1,ps命令 ps能够给出当前系统中进程的快照.它能捕获系统在某一事件的进程状态 命令参数:          a                                      显示所有进 ...

  5. linux ps查看进程命令详解

    http://linux.net527.cn/Linuxwendang/xitongguanliyuan/39094.htmlLinux操作系统PS命令详细解析 要对系统中进程进行监测控制,用 ps ...

  6. 性能监控(1)--linux下的top命令

    Linux下的监控工具 top命令 top命令能够实时显示系统中各个进程的资源占用情况,其输出信息分为两部分,前半部分为系统统计信息,后半部分是进程信息. 第一行是任务队列信息,它的结果等同于upti ...

  7. linux系统下top命令参数详解

    简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...

  8. linux怎样使用top命令查看系统状态

    有时候有很多问题只有在线上或者预发环境才能发现,而线上又不能Debug,所以线上问题定位就只能看日志,系统状态和Dump线程. Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分 ...

  9. linux抓取top命令中数据的方法

    top在linux中是一个非常直观的命令,可以清晰地看到各进程对资源的使用情况.   但是如果你想从top命令展示中提取某些数据出来,如果想当然地使用这句命令: top|grep xxx 就会被卡住, ...

随机推荐

  1. c++的直接初始化与复制初始化 未完成!!!!!!!!!!!!

    直接初始化:是直接调用类的构造函数进行初始化.如下: string a;//调用默认构造函数 string a("hello");//调用参数为 const char* 类型的构造 ...

  2. Spring Boot 整合 Hibernate5

    Run java -jar -Dspring.profiles.active=dev sport.web.services.jar Maven <parent> <groupId&g ...

  3. abp(net core)+easyui+efcore仓储系统——解决方案介绍(二)

    abp(net core)+easyui+efcore仓储系统目录 abp(net core)+easyui+efcore仓储系统——ABP总体介绍(一) ABP框架 首先介绍一下abp框架,abp其 ...

  4. SpringBoot | 第九章:Mybatis-plus的集成和使用

    前言 本章节开始介绍数据访问方面的相关知识点.对于后端开发者而言,和数据库打交道是每天都在进行的,所以一个好用的ORM框架是很有必要的.目前,绝大部分公司都选择MyBatis框架作为底层数据库持久化框 ...

  5. 利用XML序列化和Asp.Net Web缓存实现站点配置文件

    我们经常会遇到这样的场景: 今天来了个业务,需要加一个字段,但是考虑的以后可能有变动,需要配成“活”的. 一般最初的做法就是加一个配置到Web.Config文件的AppSettings中去.但是这样有 ...

  6. Validation failed for one or more entities. See ‘EntityValidationErrors’,一个或多个验证错误 解决方法

    try{// 写数据库}catch (DbEntityValidationException dbEx){ }在 dbEx 里面中我们就可以看到

  7. Apache activiti5.13工作流框架的表结构详解

    1.结构设计 1.1.    逻辑结构设计 Activiti使用到的表都是ACT_开头的. ACT_RE_*: ’RE’表示repository(存储),RepositoryService接口所操作的 ...

  8. css最佳实践(reset.css)

    html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite ...

  9. 使用kvm制作Eucalyptus镜像(CentOS 6.5为例)

    1.前言 Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) ...

  10. 分布式缓存memcached介绍,win7环境安装,常用命令set,get,delete,stats, java访问

    一.memcached是什么? 二.memcached不互相通信的分布式 三.安装步骤 四.本文介绍的命令主要包括: 存入命令(Storage commands) 取回命令(Retrieval com ...