LINUX之ps,pstree,top,vmstat简单介绍

ps,pstree,top,vmstat用来查看进程或系统负载。下面介绍经常使用的命令组合,或显示内容解释。

程序,进程,线程的关系

程序:拥有某此功能(能被cpu运行的指令),可以被cpu调用运行的文件,通常都放在外部存储设备上。

进程:程序文件被调用运行时,一般都在内存中或cpu正在执行的程序。

线程:把进程中的执行任务的指令分成多个片,而每片可以单独做为一个执行流运行和调用,并且每个片可以分配到不同的cpu核心上运行。可以被单独调用的片称为线程。线程是比进程更小的调度单位。比进程更轻量级。线各可以共享进程的一些资源。

进程的状态

运行态:running,正在运行的进程。

睡眠态:sleeping,睡眠态是进程等待调入cpu运行的进程等待再次被调入cpu运行。分为两种。可中断和不可中断。

可中断睡眠:interruptable,在内核给定的CPU时间片中没有完成计算任务,等待内核继续分配CPU时间片再次运行的进程。

不可中断睡眠:uninterruptable,正在等待外部数据,而外部数据还没有输入完成,这时此进程无法被唤省,直到数据输入完成后才可以被中断。

停止太:stopped,不会再被内核调度和运行。一般需要用户手动唤省。此进程一直占用内存,但不占用cpu。

僵死太:zombie,每个进程都是由父进程创建和中止。父进程如果挂掉,子进程完成任务后无法自动回收,这时为僵死态。这种进程会占用内存。产生僵尸进程是由有问题的程序倒至的。只有重启系统才可以释放其战胜的内存空间。

开始介绍,顺序分别是:ps-->pstree-->pgrep-->pidof-->top-->vmstat

ps  快照式显示进程状态。ps把进程分为两种,与终端相关和与终端无关的。 与终端相关的进程指的是,用户登陆后启动的进,与终端无关则是系统启动时就已经启动的守护进程。ps有两种使用风格,BSD风格和SysV风格,BSD风格使用方法不能用在参数前面加“-”,SysV则需要“-”

bsd风格

a 这个选项用来显示所有与终端相关的进程

x 此选项显示与终端无关的进程

u 以用户为中心来显示。

组合使用

示例:ps aux 以用户为中心显示所有进程

   各段解释

USER:此进程以那个用户身份运行

PID:进程的ID号

%CPU:占用CPU的百分比

%MEN:占用内存的百分比

VSZ:虚拟内存大小。指的是内核分配给此进程线性内存空间中,此进程所占用的空间大小。

RSS:常驻内在集。进程在内核分配线性空间中存储的数据实际都眏射在物理内存中的页面中,这些页面有些可以被转存到交换分区,有些不可以被交换,不可以被交换出去的页面叫做常驻内存级。

TTY:与那个终端相关,?为与终端无关。

STAT:进程运行状态,用R,S,s,D,T,Z,+,l,N

R为运行态

S为可中断睡眠

D为不可中断睡眠

T为停止态

Z为僵死态

s表示为一堆进程的领导者,说明此进程生成了一些子进程,这个进程就会被标记为s。

+表示此进程是一个前台进程,这个进程会占用命令提示符。

l表示此进程是一个多线程进程

N表示此进程为低优先级进程

<表示此进程是一个高优先级进程

START:表示启动的时间

TIME:表示运行时长

COMMAND:表示由那个程序启动的进程,用方括号“[]"括起来的表示是一个内核线程。

自定义显示信息-o 后面跟参数。

-o 指定额外的显示信息

pid:进程id

psr:运行在那个cpu

command

pri:优先级

ni:nice值

示例:ps axo pid,psr,command,pri,ni

sysv风格

-e 显示所有进程

-f 显示完整格式

-F 显示额外信息

-H 显示进程的层次结构

组合使用

示例:ps -ef 经完整格式显示所有进程

各段解释

UID:以那个用户身份运行

PID:进程ID

PPID:此进程父进程的PID

C:CPU累计运行时长

STIME:启动时间

TTY:运行在那个终端

TIME:执行累计时长

CMD:由那个程序启动的进程,用方括号“[]"括起来的表示是一个内核线程。

组合2

示例:ps -eFH  以层次结构显示所有进程的额外信息。

UID:以那个用户身份运行

PID:进程ID

PPID:此进程父进程的PID

C:CPU累计运行时长

SZ:进程使用的内存空间

RSS:常驻内在集。实际在内存中的页面数。进程在内核分配线性空间中存储的数据实际都眏射在物理内存中的页面中,这些页面有些可以被转存到交换分区,有些不可以被交换,不可以被交换出去的页面叫做常驻内存级

PSR:进程那个CPU上运行

STIME:启动时间

TTY:运行在那个终端

TIME:执行累计时长

CMD:由那个程序启动的进程,用方括号“[]"括起来的表示是一个内核线程。

pstree 查看进程树 ,每个进程都有那些子进程,其父进程是谁。(如果显示乱码,需要修改字符编码。)

pgrep 过滤显示指定的进程

-U 后面指定uid或用户名,只显示这个用户启动的进程。

-G 仅显示与指定组相关用户启动的进程

-t 仅显示与某个终端相关的进程

-l 显示进程的名字

如: pgrep -lu root 查看以root身份运行的进程

pidof 查看指定进程的相关进程号

示例:pidoff nginx

top 实时显示进程信息,是交互式的工具。默认按占用cpu的百分对进程排序。

top的内部命令

t 显示或不显示进程状态和cpu使用率

l 显示或不显示系统负载信息

1 显示cpu整体负载或每颗cpu的负载,数字1

m 显示或不显示交换内存和物理内存的相关信息

M 以使用的内存百分比排序

P 以CPU使用百分比排序

T 累积占用CPU的时间排序

q 退出top

k 终止指定进程,输入pid就可以kill掉此进程。

s 修改刷新频率,以秒为单位。默认3秒

常用选项

-d 5 :指定刷新频率为5秒,不会太准

-b 批次的方式显示top的刷新,一般打来top的时候排在较下面的进程无法显示,这个选项可以让top把所有的进程一批一批的显示。

-n 5 :指定显示几个批次后退出top

下面是每个监视项的解释

l 显示或不显示系统负载信息

t 显示或不显示进程状态和cpu使用率

进程相关

CPU相关,1 显示cpu整体负载或每颗cpu的负载,数字1。如下

m 显示或不显示交换内存和物理内存的相关信息

进程相关介绍

vmstat 命令监控信息很全面

-s 显示内存的统计数据。

后面跟一个数字参数来表示每几秒刷新一次,跟二个参数第二个参数为刷新几次后退出

vmstat 1 表示每一秒刷新一次

vmstat 1 10 表示每一少刷新一次,刷新10次后退出。

vmstat监控内容介绍

进程队例

r:运行队例的长度

b:阻塞进程的队例的长度,阻塞进程一般为等待io完成。

内存信息

swad:从内存转到交换分区的大小,(单位是kb)

free:内存的自由空间

buff:用于缓冲的空间,缓冲般用来加速写操作。

cache:用于缓存的空间,缓存空间一般用来加速读操作。

交换分区信息

si:从内存向交换分区写数据的速率,单位为kb/s.写操作较大说明内存空间小。

so:从交换分区数据向内存写入的速率,单位也是kb/s。

system

in:进程中断的速率,单位kb/s

cs:进程间切换的速率,单位kb/s.

cpu

us:用户空间应用程序使用率

sy:内核空间使用率

id:空闲率

wa:等待io进程使用率

st:虚拟程序占用cpu

监控未完等续!!!!

时间: 2024-09-30 06:33:54

LINUX之ps,pstree,top,vmstat简单介绍的相关文章

ps与top命令简单介绍

Linux中ps与top命令 这两个命令都是查看系统进程信息的命令,但是用处有点儿不同 1.ps命令--提供系统过去信息的一次性快照 也就是说ps命令能够查看刚刚系统的进程信息  命令:ps aux或者ps lax [[email protected] ~]# ps aux USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND root         1  0.1  0.1   2032   644 ?

Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式最占cpu的进程

Linux 用 ps 與 top 指令找出最耗費 CPU 與記憶體資源的程式 2016/12/220 Comments ######### # top -b -o +%CPU | head -n 22top - 21:02:00 up 2:34, 9 users, load average: 0.10, 0.08, 0.11Tasks: 190 total, 1 running, 189 sleeping, 0 stopped, 0 zombie%Cpu(s): 3.2 us, 2.2 sy,

Linux 下UVC&amp;amp;V4L2技术简单介绍(二)

通过前文Linux 下UVC&V4L2技术简单介绍(一)我们了解了UVC和V4L2的简单知识. 这里是USB设备的文档描写叙述:http://www.usb.org/developers/docs/devclass_docs/ 那么假设我们想执行一个UVC的camera设备须要做哪些工作呢? 我简单的查看了几个CM项目的kernel配置文件,发如今这些系统里面的V4L2的驱动配置选项都是打开的,可是CONFIG_USB_VIDEO_CONFIG选项是没有打开的,也就是说在如今CM支持的机型里面默

linux命令:ps pstree top进程管理

  ps命令简介: 此个命令用于查看用户进程. 1.命令格式:  ps [option] : ps 参数 常用的使用格式:ps aux |grep 'keyword'  通过关键字查找相关的进程信息 [[email protected] ~]# ps aux 显示所有进程的信息 USER    PID %CPU  %MEM  VSZ RSS  TTY   STAT START   TIME COMMAND root     1  0.0  0.0  2900 1436  ?    Ss  21:

netty学习(一)--linux下的网络io模型简单介绍

linux的内核将全部的外部设备都看作一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令 ,返回一个file descriptor(fd.文件描写叙述符).而对一个socket的读写也会有对应的描写叙述符.成为socketfd (socket描写叙述符),描写叙述符就是一个数字,它指向内核中的一个结构体(文件路径.数据区等一些属性). 依据unix编程对I/O模型的分类,unix提供了5种I/O模型.各自是: (1)堵塞I/O模型:最常使用的就是堵塞I/O模型,在默认条件下全部的文件操

Linux的bg和fg命令简单介绍

我们都知道,在 Windows 上面,我们要么让一个程序作为服务在后台一直运行,要么停止这个服务.而不能让程序在前台后台之间切换.而 Linux 提供了 fg 和 bg 命令,让我们轻松调度正在运行的任务.假设你发现前台运行的一个程序需要很长的时间,但是需要干其他的事情,你就可以用 Ctrl-Z ,挂起这个程序,然后可以看到系统提示(方括号中的是作业号): 复制代码 代码如下: [1]+ Stopped /root/bin/rsync.sh 然后我们可以把程序调度到后台执行:(bg 后面的数字为

Linux 中 vi / vim 编辑器的简单介绍后续增加强大的功能

vi/vim编辑器 一般模式:光标移动,复制整行粘贴行,搜索替换,删除字符,删除列等 移动光标的方法 h 或 向左箭头键(←) 光标向左移动一个字符 j 或 向下箭头键(↓) 光标向下移动一个字符 k 或 向上箭头键(↑) 光标向上移动一个字符 l 或 向右箭头键(→) 光标向右移动一个字符 如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标. 如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓&

进程管理,及性能监控 ps, pstree, pidof, top, htop, pmap, vmstat, dstat

进程的分类:    CPU-Bound: CPU密集型    I/O-Bound: I/O密集型 进程的分类:    批处理进程    交互式进程    实时进程 进程调度器:    进程优先级:0-139        实时优先级:1-99,数字越大,优先级越高        静态优先级:100-139, nice值调整,数字越大,优先级越低            nice:     -20, 19            priority: 100, 139        动态优先级:由内核维

linux-进程管理,ps,pstree,nice,top,vmstat,kill,jobs

进程及作业管理 进程状态 stoped:停止 ready:就绪 executing:正在运行 zombie:僵尸 Uninterruptible sleep: 不可中断的睡眠Interruptible sleep:可中断睡眠 kernel:init:第一个进程,所有进程的父进程 pstree:查看进程树 [[email protected] ~]# pstreeinit─┬─NetworkManager─┬─dhclient     │                └─{NetworkMana