Linux下主要的进程查看命令主要有:ps top htop

        

进程的分类:

    与终端无关的进程:系统启动过程的自动启动的进程
    与终端有关的进程:用户通过终端启动的进程

ps:

    ps是通过/proc/路径下有和进程PID号相对应的文件来将进程的状态显示出来的。

ps a:查看与终端相关的进程

ps x:查看与总段无关的进程

ps ax:查看所有

常用组合:px aux:以用户为中心显示出进程信息  (以PID号为顺序进行排序)

[root@localhost ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.4 123492  4092 ?        Ss   02:28   0:05 /usr/lib/systemd/system
root          2  0.0  0.0      0     0 ?        S    02:28   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    02:28   0:00 [ksoftirqd/0]
root          6  0.0  0.0      0     0 ?        S    02:28   0:00 [kworker/u256:0]


    USER:用户名

    PID:进程号

    %CPU:累计CPU使用的时间

    %MEM:内存的占用

    VSZ:占用的虚拟内存的大小

    RSS:常驻内存的大小

    TTY:所在的终端

    STAT:当前进程的进行状态

        R:Running

        S:可中断睡眠

        D:uninterruptable sleeping不可中断睡眠

        T:stop停止

        Z:zombie僵死态(父进程回收之前的状态)

        +:前台进程,运行在终端之上,占据提示符

        l: 多线程线程

        N:低优先级进程

        <:高优先级进程

        s:会话主导者

    TIME:

    COMMAND

ps -e:显示所有进程

ps -f:显示完整格式。

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

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


常用组合二:ps -ef

[root@localhost ~]#  ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 02:28 ?        00:00:06 /usr/lib/systemd/systemd --switched-roo
root          2      0  0 02:28 ?        00:00:00 [kthreadd]
root          3      2  0 02:28 ?        00:00:00 [ksoftirqd/0]

    UID:启动的进程用户

    PID:进程号

    PPID:父进程的进程号

    C:cpu占用百分比

    STIME:启动时间

    TTY:与那个终端相关

    TIME:已经运行的时间

    CMD:启动此进程的命令

[root@localhost ~]# ps -eF
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          1      0  0 30873  4092   0 02:28 ?        00:00:06 /usr/lib/systemd/system
root          2      0  0     0     0   0 02:28 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 02:28 ?        00:00:00 [ksoftirqd/0]
root          6      2  0     0     0   0 02:28 ?        00:00:00 [kworker/u256:0]

    UID:启动进程的用户

    PID:进程号

    PPID:父进程的金曾好

    C:cpu占用的百分比

    SZ:虚拟内存集

    RSS:  常驻内存集

    PSR:运行在哪颗CPU上

    STIME:开始时间

    TTY:所在的进程

    TIME:已经运行的时间

    CMD:启动此进程的命令


常用组合三:ps -eFH


ps -o file1,file2...自定义要显示的字段 

    

    pid:进程号

    nl:nice

    pri:priority优先级

    psr:用哪个cpu

    pcpuCPU利用率

    stat:状态

    command :由那个程序启动

    tty:和哪个终端相关

    ppid:父进程进程号

    rtprio:real time priority 实时优先级


常用组合四: ps -axo ps-eo

[root@localhost ~]# ps -axo uid,pid,pcpu
  UID    PID %CPU
    0      1  0.0
    0      2  0.0
    0      3  0.0
    0      6  0.0
    0      7  0.0

    


dstat:  

dstat n m n秒钟显示一次,一共显示m+1

[root@localhost ~]# dstat 1 2
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  1   2  97   0   0   0|8070B 1485B|   0     0 |   0     0 |  61    60 
  0   0 100   0   0   0|   0     0 | 120B  874B|   0     0 |  33    34 
  1   5  94   0   0   0|   0     0 | 120B  346B|   0     0 |  79    27


常用选项:

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

-C #,#,...tatal  查看哪颗CPU

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

-D sdasdb,....total指明某一块特定磁盘

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

-m:显示内存相关的统计数据

-n:interface 的相关数据

-p:统计进程数据

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

-s:显示swapped的相关设备。

--tcp:

--udp

--raw

--socket

[root@localhost ~]# dstat -pcdgmnrs
---procs--- ----total-cpu-usage---- -dsk/total- ---paging-- ------memory-usage----- -net/total- --io/total- ----swap---
run blk new|usr sys idl wai hiq siq| read  writ|  in   out | used  buff  cach  free| recv  send| read  writ| used  free
0.0   0 0.2|  1   2  97   0   0   0|7993B 1473B|   0     0 | 232M 1344k  104M  640M|   0     0 |0.46  0.28 |   0  2049M
  0   0   0|  0   0 100   0   0   0|   0     0 |   0     0 | 232M 1344k  104M  640M|  60B  506B|   0     0 |   0  2049M

--ipc:进程间通信

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

--top-io:最站用io的进程

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

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

[root@localhost ~]# dstat --ipc --top-cpu --top-io --top-mem
--sysv-ipc- -most-expensive- ----most-expensive---- --most-expensive-
msg sem shm|  cpu process   |     i/o process      |  memory process 
  0   0   0|htop         2.3|htop         78k  154B|tuned       15.0M
  0   0   0|kworker/0:1  1.0|sshd: root@ 530B  580B|tuned       15.0M
  0   0   0|kworker/0:1  3.0|htop         82k  540B|tuned       15.0M
  0   0   0|htop         1.0|htop         82k  898B|tuned       15.0M


top:显示linux进程信息 ,占用最多拍最前

[root@localhost ~]# top
top - 07:41:24 up  5:12,  2 users,  load average: 0.01, 0.02, 0.05
Tasks: 361 total,   2 running, 359 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.3 us,  0.7 sy,  0.0 ni, 99.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1001340 total,   671424 free,   143556 used,   186360 buff/cache
KiB Swap:  2098172 total,  2098172 free,        0 used.   688004 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND             
  1401 root      20   0  122928   2648   1428 S  0.3  0.3   6:48.46 htop                
  3037 root      20   0  146276   2224   1400 R  0.3  0.2   0:00.13 top                 
     1 root      20   0  123492   4092   2392 S  0.0  0.4   0:06.33 systemd

top:当前时间   

up:运行时长  

users:用户数目  

load average:1分钟平均队列长度,5分钟平均队列长度,15分钟平均队列长度

running:运行中的进程数目

sleeping:睡眠中的进程数目

stopped:停止的进程的数目

zombie:僵死的进程数目

%Cpu(s):CPU占用百分比

us:用户空间占用百分比  

sy内核空间占用百分  

ni:nice值

id:空闲百分比
wa:等待IO完成时间

hi:硬件中断

si:软件中断

st:被虚拟化偷走百分比

buff/cache (缓冲、缓存) 



排序方式:在top下使用

 

T=累计占用CPU时间进行排序

P=cpu百分比进行排序

M=占据内存百分比

 

首部信息:

第一行显示uptimel关掉

第二行 taskcpu信息,t关掉

第四行、第五行 显示内存信息,m关闭

按下s可以修改默认刷新时间

s:修改时间间隔

q:退出

k:关闭指定进程

 

选项

-d #:刷新时间间隔

-b n#:以批次方显示,一屏屏

-n显示多少批次,显示完以后退出


htop:类似于top的进程查看工具,但是功能更强大

支持鼠标操作

  选项:

-d:延迟时间间隔

-u:指定用户进程

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

  子命令:

u:查看指定用户进程


H:显示或隐藏用户进程

H:显示或隐藏内核进程

F6:选定字段进行排序

a:将程序绑定至某指定的CPU核心

c:标记进程以及子进程

l:可以跟踪进程所打开的文件  F5刷新

s: 查看选定的程序发起的所有系统调用

F4可以滚屏 esc退出

t/F5:以树状格式显示

F2:进入设定  选定内容后通过F5 F6进行添加