进程查看及命令使用-htop/dstat/top/ps命令

进程是linux用来表示正在运行的程序的一种抽象概念,程序内存的使用,处理器时间和I/O资源就是通过这个对象进行管理和监视的。

一个程序要先运行在用户空间,当他需要去使用硬件资源的时候,就不得不去调动内核才能取得使用权,这时候调动内核,进入内核空间,当内核处理完毕需求之后,将指令返回给用户,一个调用完成。

进程会以时间片段在CPU运行的,CPU以一根时间线被划分成无数个片段;当一个进程运行到某个阶段,需要暂时终止的时候,需要保存一个进程运行的现场,叫保存现场;执行到某片段的时候,需要中断,当再需要执行的时候,恢复现场。

运行中的程序的某个副本才叫进程;进程有生命周期,进程时活动的。

内核为每个进程都要创建一个运行信息,存储每一个进程的相关信息,及进程的结构体,即task struct。这里面的信息有:

1.进程的地址空间映射;

2.进程的当前状态(睡眠状态,停止状态,可运行状态等)

3.进程执行的优先级;

4.进程已用资源的信息;

5.进程已打开的文件和网络端口的信息;

6.进程的信号掩码(一个记录,确定要封锁哪些信号)

7.进程属主。

一个进程由一个地址空间和内核内部的一组数据结构组成。地址空间是内核标记出的供进程使用的一组内存页面。它包含了进程只在执行的代码和库,进程变量,进程栈以及进程运行时所需要的各种其他信息。

一个线程是一个进程内执行了一次fork()的结果,线程继承了包含他的进程的许多属性(进程的地址空间等)。

进程的调度优先级决定了他接受到CPU的时间的多少。nice值决定了进度优先级。静态nice值越小,优先级越高。

为了创建一个新的进程,一个进程就会用系统fork来复制自身,fork创建原进程的一个副本,这个副本大致与父进程相同,新进程拥有不同的PID。

fork具有独一无二的特性,它能够返回两个值,对子进程来说,返回为0,对父进程来说,返回一个PID。

linux系统最独特进程时init进程。进程号总为1,他是其他进程的GOD,除了内核创建的几个进程外,其他所有进程都是他的后代。

接下来看一些查看进程的命令:

1.ps命令:报告当前进程的信息

选项;

#1   a:所有与终端相关的进程;

x:所有与终端无关的进程;

u:以用户为中心组织进程状态信息显示;

所以第一个组合为:aux,示例:所有用户的进程信息

[[email protected] yum.repos.d]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.7  59772  7704 ?        Ss   12月25   0:13 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root          2  0.0  0.0      0     0 ?        S    12月25   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    12月25   0:03 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   12月25   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    12月25   0:00 [migration/0]

显示的第一行的意义:

VSZ:虚拟内存集;

RSS:Resident Size,常驻内存集;

STAT:状态

R:running 运行中状态

S:interruptable sleeping 可中断睡眠状态

D:uninterruptable sleeping 不可中断睡眠状态

T:Stopped 停止状态

Z:zombie 僵死状态

+:前台进程

l:多线程进程

N:低优先级进程

<:高优先级进程

s:session leader

#2 选项:

-e:显示所有进程

-f:显示完整格式的进程信息

常用组合之二:-ef,示例:

[[email protected] yum.repos.d]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 12月25 ?      00:00:13 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
root          2      0  0 12月25 ?      00:00:00 [kthreadd]
root          3      2  0 12月25 ?      00:00:03 [ksoftirqd/0]
root          5      2  0 12月25 ?      00:00:00 [kworker/0:0H]
root          7      2  0 12月25 ?      00:00:00 [migration/0]

第一行意义:

PPID:父进程

C:CPU的占用百分比

STIME:启动时间

TTY:与何终端相关

TIME:CPU累积运行时间

#3选项

-F:显示完整格式的进程信息

-H:以层级结构显示进程的相关信息;

常用组合之三:-eFH,示例

[[email protected] yum.repos.d]# ps -eFH
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   0 12月25 ?      00:00:00 [kthreadd]
root          3      2  0     0     0   0 12月25 ?      00:00:03   [ksoftirqd/0]
root          5      2  0     0     0   0 12月25 ?      00:00:00   [kworker/0:0H]
root          7      2  0     0     0   0 12月25 ?      00:00:00   [migration/0]

第一行意义:

PSR:运行于哪颗CPU之上

SZ:使用掉的内存大小

#4选项

o  field1, field2,...:自定义要显示的字段列表,以逗号分隔;

常用的field:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio

ni:nice值;

priority:priority, 优先级;

rtprio:real time priority,实时优先级;

常用组合::-eo, axo

示例:仅显示进程PID及命令

[[email protected] yum.repos.d]# ps axo pid,command
   PID COMMAND
     1 /usr/lib/systemd/systemd --switched-root --system --deserialize 24
     2 [kthreadd]
     3 [ksoftirqd/0]
     5 [kworker/0:0H]
     7 [migration/0]

2.top命令:显示linux的进程信息

排序:

P:以占据CPU百分比排序;

M:以占据内存百分比排序;

T:累积占用CPU时间排序;

默认以占用CPU百分比排序,示例,以占用内存排序:

top - 14:50:39 up 18:42,  2 users,  load average: 0.00, 0.02, 0.05
Tasks: 357 total,   1 running, 356 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.3 si,  0.0 st
KiB Mem :  1003184 total,   600632 free,   165772 used,   236780 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   638776 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                 
   794 root      20   0  550176  16124   5628 S   0.3  1.6   0:13.51 tuned                                                                   
   840 root      20   0  103736  15640   3228 S   0.0  1.6   0:00.19 dhclient                                                                
  3351 root      20   0  103736  15624   3216 S   0.0  1.6   0:00.51 dhclient                                                                
   833 polkitd   20   0  516068  12656   4336 S   0.0  1.3   0:01.92 polkitd

首部信息分为三块:

uptime信息:l命令

tasks及cpu信息:t命令

内存信息:m命令

其中第一行信息解释:

显示系统时间、运行时长及平均负载;过去1分钟、5分钟和15分钟的平均负载;等待运行的进 程队列的长度;

第三行:

us:用户空间进程占用的CPU百分比

sy:内核空间进程占用的CPU百分比

ni:用于nice值调整占用的CPU百分比

id:空闲百分比

wa:等待IO消耗的时间CPU百分比

hi:处理硬件中断消耗的CPU百分比

si:处理软件终端小号的CPU百分比

st:被虚拟环境偷走的CPU百分比

进程状态字段含义:

PR:进程优先级

NI:nice值

VIRT:虚拟内存集

RES:常驻内存集

SHR:共享内存空间

S:当前状态

%CPU:占用CPU时间百分比

%MEM:占用内存百分比

TIME+:运行时间

退出命令:q

修改刷新时间间隔:s

终止指定的进程:k

示例:修改间隔时间,按s

top - 15:41:11 up 19:33,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 357 total,   1 running, 356 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.5 sy,  0.0 ni, 99.3 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1003184 total,   599760 free,   166632 used,   236792 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   637988 avail Mem 
Change delay from 3.0 to 2

示例,杀掉某进程,按k

top - 15:42:25 up 19:34,  2 users,  load average: 0.00, 0.01, 0.05
Tasks: 357 total,   2 running, 355 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.3 sy,  0.0 ni, 99.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1003184 total,   599916 free,   166476 used,   236792 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   638144 avail Mem 
PID to signal/kill [default pid = 794] 10064

使用选项:

-d #:指定刷新时间间隔,默认为3秒;

-b:以批次方式显示;

-n #:显示多少批次;

3.htop 命令:与top类似,此命令需要手动安装。

右边tasks只是用户空间的进程;

支持鼠标,点或者按F1进入帮助选项

选项:子命令

u:查看某个用户进程    H:显示或隐藏用户线程    K;隐藏或显示内核线程

F6:指定排序    F:光标在哪个线程    PMT:排序方式    c:标记出一个进程和子进程

 a:将选定的进程绑定至某指定的CPU核心;   l:跟踪显示某个进程打开的所以文件

    s:跟踪选定的进程的系统调用;    t:以层级关系显示各进程状态;

选项:

-d #:指定延迟时间间隔;

-u UserName:仅显示指定用户的进程;

-s COLUME:以指定字段进行排序;

可以利用子命令进行想要的显示。

4.dstat命令:用于生成资源信息统计的工具。默认给的选项是-cdngy

格式:dstat [-afv] [options..] [delay [count]]

常用选项:

-c, --cpu:显示cpu相关信息;

-C #,#,...,total

-d, --disk:显示磁盘的相关信息

-D sda,sdb,...,tobal

-n:Interface的相关统计数据;

-g:显示page相关的速率数据;

-m:Memory的相关统计数据

-p:显示process的相关统计数据;

-r:显示io请求的相关的统计数据;

-s:显示swapped的相关统计数据;

-y:system

示例:

[[email protected] yum.repos.d]# dstat -c
----total-cpu-usage----
usr sys idl wai hiq siq
  0   0 100   0   0   0
  0   0 100   0   0   0
[[email protected] yum.repos.d]# dstat -d
-dsk/total-
 read  writ
1669B 2432B
[[email protected] yum.repos.d]# dstat -cdgmnprs
----total-cpu-usage---- -dsk/total- ---paging-- ------memory-usage----- -net/total- ---procs--- --io/total- ----swap---
usr sys idl wai hiq siq| read  writ|  in   out | used  buff  cach  free| recv  send|run blk new| read  writ| used  free
  0   0 100   0   0   0|1663B 2425B|   0     0 | 148M 98.2M  477M  258M|   0     0 |0.0   0 0.3|0.10  0.17 |   0  2048M
  0   0 100   0   0   0|   0    32k|   0     0 | 148M 98.2M  477M  258M| 180B 1306B|  0   0   0|   0  3.00 |   0  2048M
  0   1 100   0   0   0|   0     0 |   0     0 | 148M 98.2M  477M  258M|2202B  506B|  0   0   0|   0     0 |   0  2048M
  0   0  99   0   0   0|   0     0 |   0     0 | 148M 98.2M  477M  258M|  60B  506B|  0   0   0|   0     0 |   0  2048M
  0   0 100   0   0   0|   0     0 |   0     0 | 148M 98.2M  477M  258M| 410B  506B|  0   0   0|   0     0 |   0  2048M

--aio:统计异步IO

--ipc:统计进程间各自通信信息(消息队列,信号量,共享内存)

--lock:文件锁信息:

--tcp:动态显示TCP状态各连接状态信息的数量

--udp:动态显示UDP状态各连接状态信息的数量

--raw :裸套接字相关信息

--socket 用来显示tcp udp端口状态

示例:

[[email protected] yum.repos.d]# dstat --tcp --aio --ipc --lock --socket
----tcp-sockets---- async --sysv-ipc- ---file-locks-- ------sockets------
lis act syn tim clo| #aio|msg sem shm|pos lck rea wri|tot tcp udp raw frg
 13   1   0   0   0|   0 |  0   3   0|2.0 4.0   0 6.0|449   7   6   0   0
 13   1   0   0   0|   0 |  0   3   0|2.0 4.0   0 6.0|449   7   6   0   0
 13   1   0   0   0|   0 |  0   3   0|2.0 4.0   0 6.0|449   7   6   0   0

#还可显示占用资源量较大的进程

--top-cpu:显示最占用CPU的进程;

[[email protected] yum.repos.d]# dstat --top-cpu
-most-expensive-
  cpu process   
events/1     0.1
                
httpd        0.5
                
sshd: [email protected]
irqbalance   0.5

--top-io:最占用io的进程;

--top-mem:最占用内存的进程;

--top-lantency:延迟最大的进程;

以上即为dsta的用法。

时间: 2024-10-26 22:36:27

进程查看及命令使用-htop/dstat/top/ps命令的相关文章

linux 系统上的进程查看管理工具之htop/dstat/top/ps命令详解

     进程查看管理工具之ps/top/dstat/htop命令详解 一.ps命令详解: ps 加选项参数 ps a 显示与终端相关的内容信息,例如: [[email protected] cx]# ps a PID TTY      STAT   TIME COMMAND 2396 tty3     Ss+    0:00 /sbin/mingetty /dev/tty3 2399 tty4     Ss+    0:00 /sbin/mingetty /dev/tty4 2401 tty5

htop/dstat/top/ps命令的使用(一堆图片,累死我了)

要对进程进行监测和控 制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps 命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的. ps为我们提供了进程的一次性的查看,它所提供的查看结果并不动态连续的;如果想对进程时间监控,应该用 top 工具. PS命令使用: 1.ps命令:进程状态查看命令 /proc/:内核中的状态信息: (1).内核

htop/dstat/top/ps命令的使用

一.概述 htop.top.dstat.ps是Linux系统上的进程的查看及管理的工具:可以帮助我们快速的去查找和定位问题,并可以对当前系统的运行状况及使情况进行实时打印: 二.进程 在系统启动后全产生许多进程,进程就是运行中的程序的一个副本,进程是有生命周期的,一般会随着自身所在bash的关闭而关闭,所有进程都是在系统启动后由/sbin/init来创建的,而进程之间存在父子关系,所有的子进程都是由其父进程创建的: 进程与进程间存在优先级:1-139 1-99:实时优先级 100-139:静态优

linux进程及作业管理的四大长老-htop/ dstat /top/ ps

   一.进程简介     进程是linux用来表示正在运行的程序的一种抽象概念,程序内存的使用,处理器时间和I/O资源就是通过这个对象进行管理和监视的. 一个程序要先运行在用户空间,当他需要去使用硬件资源的时候,就不得不去调动内核才能取得使用权,这时候调动内核,进入内核空间,当内核处理完毕需求之后,将指令返回给用户,一个调用完成. 进程会以时间片段在CPU运行的,CPU以一根时间线被划分成无数个片段:当一个进程运行到某个阶段,需要暂时终止的时候,需要保存一个进程运行的现场,叫保存现场:执行到某

htop/dstat/top/ps,vmstat

ps命令 1.ps简介 ps命令是一个查看进程的命令,使用该功能可以确定有那些正在运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等. 2.ps及命令参数 ps选项有三种风格: (1) UNIX 风格:选项前必须带有-连字符:如:-e (2) BSD 风格  :选项前不使用-连字符 如:aux (3) GNU 风格 : 选项必须使用长格式显示 ps [选项] a:所有与终端相关的进程: x:所有与终端无关的进程: u:以用户为中心组织进程状态信息显示: -e:显示所有进程 -

【转】每天一个linux命令(41):ps命令

原文网址:http://www.cnblogs.com/peida/archive/2012/12/19/2824418.html Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令. 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令.使用该

每天一个linux命令(41):ps命令

Linux中的ps命令是Process Status的缩写.ps命令用来列出系统中当前运行的那些进程.ps命令列出的是当前那些进程的快照,就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令. 要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而 ps 命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态.进程是否结束.进程有没有僵死.哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执

Linux命令(25):ps命令-显示系统进程

ps命令 功能说明 ps命令用于系统进程在瞬间的运行动态.用法如下:   ps [选项] [-s (间隔秒数)] 常用参数 选项 含义 a 显示所有用户的进程,包含每个程序的完整路径 -x 显示所有系统程序,包括哪此没有终端的程序 -u 显示使用都的名称和起始时间 -f 详细显示程序执行的路径群 -c 只显示进程的名称,不显示进程的完整路径 -e 将除内核进程以外所有进程的信息写到标准输出(等同于-A) 常用组合: ps -ef          #显示所有进程信息,连同命令行 ps aux 

Linux下ps命令详解 Linux下ps命令的详细使用方法

Linux下ps命令详解 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)ps工具标识进程的5种状态码:D 不可中断 uninterruptible sleep (usuall