进程管理

1、ps命令

查看当前时刻的进程状态,通过此命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等

进程状态:
    运行态:running
    就绪态:ready
    睡眠态:
        可中断:interruptable
        不可中断:uninterruptable
    停止态:stopped, 暂停于内存中,但不会被调度,除非手动启动
    僵死态:zombie,父进程结束了,但是子进程却没结束

(1)语法

ps [options]
options有三种风格:
    1   UNIX options, which may be grouped and must be preceded by a dash.(如 -A -a)
    2   BSD options, which may be grouped and must not be used with a dash.(如 a g)
    3   GNU long options, which are preceded by two dashes.(如 --deselect)

(2)常用选项

a 显示包括所有终端中的进程
x 显示包括不链接终端的进程(不确定终端的用?表示)
u 显示进程所有者的信息
f 显示进程的父进程
o 属性…  显示定制的信息
-e 显示所有进程
-f 显示完整格式的进程信息
-F 显示完整格式的进行信息(更详细)
-H 以层级结构显示进程的相关信息

进程管理

(3)常用组合

1)ps aux

[root@linuxpao network-scripts]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  1.1 192240  5692 ?        Ss   08:27   0:10 /usr/lib/systemd/systemd --switched-root
root          2  0.0  0.0      0     0 ?        S    08:27   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    08:27   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   08:27   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    08:27   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    08:27   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    08:27   0:00 [rcuob/0]

......


USER:进程的发起者        
PID:进程号
%CPU:进程使用掉的CPU资源百分比
%MEM:进程占用的物理内存百分比    
VSZ:进程使用掉的虚拟内存大小,单位KB   
RSS:进程占用的固定内存大小,单位KB (常驻内存集)
TTY:进程在哪个终端运行      
STAT:进程目前的状态 
START:进程被触发的时间   
TIME:进程实际使用CPU时间 
COMMAND:触发此进程的命令

STAT的状态说明:
    <:该进程运行在高优先级上
    N:该进程运行在低优先级上
    L:该进程有页面锁定在内存中
    R:运行中
    s:该进程是控制进程
    l:该进程是多线程
    +:该进程运行在前台  
    O:代表正在运行
    S:休眠状态
    R:可运行,正等待运行
    Z:僵死
    T:停止

2)ps -ef

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 08:27 ?        00:00:11 /usr/lib/systemd/systemd --switched-root --system --dese
root          2      0  0 08:27 ?        00:00:00 [kthreadd]
root          3      2  0 08:27 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 08:27 ?        00:00:00 [kworker/0:0H]
root          7      2  0 08:27 ?        00:00:00 [migration/0]
root          8      2  0 08:27 ?        00:00:00 [rcu_bh]

......

UID:进程的发起者
PID:进程号
PPID:父进程号
C:进程生命周期中的CPU利用率
STIME:进程启动时的系统时间
TTY:进程是由哪个终端启动的
TIME:运行进程需要的累计CPU时间
CMD:触发此进程的命令

3)ps axo

o选项自定义的字段:
    pid ni pri pcpu psr stat comm tty ppid euser ruser %cpu %mem rtprio ...

[root@linuxpao network-scripts]# ps axo pid,comm,state,%cpu,pri,tty
   PID COMMAND         S %CPU PRI TT
     1 systemd         S  0.0  19 ?
     2 kthreadd        S  0.0  19 ?
     3 ksoftirqd/0     S  0.0  19 ?
     5 kworker/0:0H    S  0.0  39 ?
     7 migration/0     S  0.0 139 ?
     8 rcu_bh          S  0.0  19 ?
     9 rcuob/0         S  0.0  19 ?
    10 rcuob/1         S  0.0  19 ?
    11 rcuob/2         S  0.0  19 ?

    ......

4)ps -eFH

[root@linuxpao network-scripts]# ps -eFH
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   1 08:27 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 08:27 ?        00:00:00   [ksoftirqd/0]
root          5      2  0     0     0   0 08:27 ?        00:00:00   [kworker/0:0H]
root          7      2  0     0     0   0 08:27 ?        00:00:00   [migration/0]
root          8      2  0     0     0   0 08:27 ?        00:00:00   [rcu_bh]
root          9      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/0]
root         10      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/1]
root         11      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/2]
root         12      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/3]

......

SZ:假如进程被换出,所需交换空间的大小
PSR:当前进程被分配给哪个处理器

5)ps -l

[root@linuxpao network-scripts]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   9241   9237  0  80   0 - 29261 wait   pts/3    00:00:03 bash
0 R     0  15408   9241  0  80   0 - 34343 -      pts/3    00:00:00 ps

F:内核分配给进程的系统标记
S:进程的状态(O S T R Z )
NI:nice值,用来参与决定优先级
ADDR:进程的内存地址
WCHAN:进程休眠的内核函数的地址

2、top命令

实时显示系统进程的状态

(1)语法

top [option]

(2)选项

-d:后接秒数,即整个进程界面更新的秒数,默认3秒
-b:以批次的方式执行top,常与重定向连用
-n:与-b搭配,意义是,需要进行几次top的输出结果
-p:指定某个PID来进行查看检测而已

在top的执行过程当中可以使用按键命令:

?:显示在top当中可以输入的按键命令
P:以占据的CPU百分比大小排序
M:以占据的内存百分比大小排序
N:以PID排序
T:以CPU累积占用时间排序
k:给予某个PID一个信号
r:给予某个PID重新制定一个nice值
q:退出top程序
s:修改延迟的时长
l:是否显示系统负载行(最顶行)
t:是否显示进程摘要信息及CPU负载状态(2、3行)
1:数字1,平均或单独显示CPU的负载状态

(3)top命令界面介绍

进程管理

top – 14:55:09  up  6:27,  3 users,  load average: 0.04, 0.03, 0.05

14:55:09:当前的系统时间    
up  6:27:系统启动到目前为止所经过的时间
3 users:当前系统中的用户数量
load average:系统在1,5,15分钟的平均负载,若高于1表示系统压力过大

Tasks: 428 total,   1 running, 427 sleeping,   0 stopped,   0 zombie

显示的是目前进程的总量与个别进程的状态,特别需要注意zombie状态

%Cpu(s):  0.5 us,  1.0 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

CPU的整体负载,可以使用?查看
    us :用户空间
    sy :内核空间
    ni :调整nice 时间
    id :空闲
    wa :等待IO 时间
    hi :硬中断
    si :软中断(模式切换)
    st :虚拟机偷走的时间

KiB Mem :   485280 total,     9348 free,   303228 used,   172704 buff/cache

物理内存的使用状态

KiB Swap:  2098172 total,  1881740 free,   216432 used.   117220 avail Mem

虚拟内存使用状态,若swap被大量使用,则表示物理内存不足了

PID  USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

PID:每个进程的PID 
USER:进程的使用者      
PR:进程的优先级,值越小优先级越高  
NI:nice值    
VIRT:进程需要的虚拟内存大小,而非使用的虚拟内存    
RES:进程当前使用的内存大小,不包括swap    
SHR:进程与其他进程共享的内存大小,可以通过RES-SHR来计算进程所占用的物理内存大小
S:进程的状态 
%CPU:CPU的使用率 
%MEM:内存的使用率     
TIME+:CPU使用的时间累积 
COMMAND:触发进程的命令

3、vmstat命令

显示虚拟内存信息

(1)语法

vmstat [options] [delay [count]]

(2)用法解释

[root@linuxpao ~]# vmstat  1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 216408  10636     36 172748    2    5   100     8   49   61  0  1 99  0  0
 0  0 216408  10620     36 172748    0    0     0     0   64   96  0  0 100  0  0
 0  0 216408  10620     36 172748    0    0     0     0   53   73  0  0 100  0  0

procs
    r:等待运行的进程个数
    b:不可中断睡眠状态的进程的个数
memory
    swpd:swap使用量
    free:空闲的物理内存量
    buffer:用于buffer的内存总量
    cache:用于cache的内存总量
swap
    si:数据进入swap的速率(kb/s)
    so:数据离开swap的速率(kb/s)
io
    bi:从块设备读入数据到系统的速率(kb/s)
    bo:保存数据至块设备的速率(kb/s)
system
    in:中断速率,每秒被中断的次数
    cs:进程切换的速率
cpu
    us:用户运行程序占用CPU的百分比
    sy:用于运行内核占用的CPU百分比
    id:空闲CPU百分比
    wa:等待I/O花费的时间
    st:被虚拟机偷走的内存百分比

4、dstat命令

全能的系统信息统计工具,可以实时的监控cpu、磁盘、网络、IO、内存等使用情况

(1)语法

dstat [-afv] [options..] [delay [count]]

(2)选项

-c:显示CPU性能指标相关的统计数据
-d:显示disk相关的速率数据
-g:显示page相关的速率数据
-i:显示interrupt相关的统计数据
-l:显示load average相关的统计数据
-m:显示memory相关的统计数据
-n:显示网络收发数据的速率
-p:显示进程相关的统计数据
-r:io请求的速率
-s:显示swap的相关数据
-y:显示系统相关的数据,包括中断和进程切换
--top-cpu:显示最占用CPU的进程
--top-bio:显示最小号block io的进程
--top-io:最占io的进程
--top-mem:最占内存的进程
--ipc:显示进程间通信相关的速率数据
--raw:显示raw套接字的相关数据
-tcp:显示tcp套接字的相关数据
--udp:显示udp套接字的相关数据
--unix:显示unix sock接口相关的统计数据

(3)用法解释

[root@linuxpao network-scripts]# dstat 
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 
  0   1  99   0   0   0| 186k   14k|   0     0 |4188B   10k|  95   118 
  1   4  96   0   0   0|   0     0 |1510B  842B|   0     0 | 205   216 
  0   1 100   0   0   0|   0     0 |1510B  346B|   0     0 |  52    65 

total-cpu-usage
    CPU的使用率
dsk/total
    磁盘读写总数
net/total
    网络设备发送和接收的数据总数
paging
    系统的分页活动。分页指的是一种内存管理技术,用于查找系统场景,一个较大的分页表明系统正在使用大量的交换空间,或者说内存非常分散。
system
    显示系的中断(int)和上下文切换(csw),若此栏统计值较高则表示大量的进程造成拥塞

5、kill命令

向进程发送信号指令,如终止进程、重读文件等

(1)当前系统的信号名称

[root@linuxpao ~]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

(2)常用信号

1) SIGHUP:通知进程重读配置文件让新配置生效   
2) SIGINT:中断正在进行的进程,相当于 Ctrl+C
3) SIGQUIT:退出程序,相当于 Ctrl+\
9) SIGKILL:强行终止正在运行中的进程 
15) SIGTERM:安全终止正在运行的进程(默认)
18) SIGCONT:继续运行指定的进程(后台)
19) SIGSTOP:暂停进程(后台休眠),相当于 Ctrl+Z

原创文章,作者:pao,如若转载,请注明出处:http://www.178linux.com/45138

赞 (0)
paopao
上一篇 2016-09-10 12:30
下一篇 2016-09-10 13:22

相关推荐

  • 第三周学习总结之简单文本处理

    写在最前 通过前面的学习,我们已经知道Linux是一个一切皆文件的系统,因此对文件的处理就显得尤为重要,到目前为止,对于新手来说可能连鼎鼎大名的三剑客也未必听过,不过在这之前我们也可以使用一些非常好用的文本处理工具来完成一些简单文件的处理。本次内容就是讲讲如何使用几个简单文本处理工具的组合完成一些实用的功能。 文本处理工具 文本处理工具,用我的理解就是能够对…

    2017-12-19
  • Linux文件类型及颜色标识整理

    Linux文件类型及颜色标识整理 M21陆东贵 使用工具: ls命令     ls –l:以常格式显示文件及目录的详细信息     例如:-rw-r–r–  1 root root       0 10月 …

    Linux干货 2016-10-18
  • 网络基础笔记

    网络管理笔记 1. 网络概念:     一组网络设备或计算机,通过无形的规则链接起来的体系!    2. 应用程序种类:     (1)批处理应用程序:            FTP、TFTP、库存更新    &nbsp…

    Linux干货 2017-03-16
  • 也许你根本不会用百度搜索

    搜索引擎可以帮助使用者在Internet上找到特定的信息,但它们同时也会返回大量无关的信息。但是如果多使用一些技巧,你将发现搜索引擎会花尽可能少的时间找到你需要的确切信息。 1.简单查询 这个就是最简单便捷的使用方式,其实也是我们大多数人平时使用百度或者其他搜索引擎的方式。比如你想查培训学校,那么你的第一反应肯定就是在百度里输入【挖掘机】【挖掘机学校】【蓝翔…

    2015-03-02
  • linux如何获取帮助以及基础目录命名标准

    一、linux的命令分为两种,一种是内建命令,即包含在shell当中的,一种是外部命令,通常保存在 bin目录中。 1、对于内部命令:  通常使用 help COMMAND 2、对于外部命令:  通常使用 man command  mannul的位置/usr/share/man man的内容通常分为以下几块   1、N…

    Linux干货 2016-10-30
  • N28-第四周

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。
    2、编辑/etc/group文件,添加组hadoop。
    3、手动编辑/etc/passwd文件新增一行,添加用户hadoop,其基本组ID为hadoop组的id号;其家目录为/home/hadoop。
    4、复制/etc/skel目录为/home/hadoop,要求修改hadoop目录的属组和其它用户没有任何访问权限。
    5、修改/home/hadoop目录及其内部所有文件的属主为hadoop,属组为hadoop。
    6、显示/proc/meminfo文件中以大写或小写S开头的行;用两种方式;
    7、显示/etc/passwd文件中其默认shell为非/sbin/nologin的用户;
    8、显示/etc/passwd文件中其默认shell为/bin/bash的用户;
    9、找出/etc/passwd文件中的一位数或两位数;
    10、显示/boot/grub/grub.conf中以至少一个空白字符开头的行;
    11、显示/etc/rc.d/rc.sysinit文件中以#开头,后面跟至少一个空白字符,而后又有至少一个非空白字符的行;
    12、打出netstat -tan命令执行结果中以‘LISTEN’,后或跟空白字符结尾的行;
    13、添加用户bash, testbash, basher, nologin (此一个用户的shell为/sbin/nologin),而后找出当前系统上其用户名和默认shell相同的用户的信息;

    2017-12-30