进程管理

一、进程相关概念
(1)进程概念
运行中的程序的一个副本,是被载入内存的一个指令集合进程ID(Process ID,PID)号码被用来标记各个进程UID、GID、和SELinux语境决定对文件系统的存取和访问权限,通常从执行进程的用户来继承存在生命周期。
(2)进程的功用

进程管理、文件系统、网络功能、内存管理、驱动程序、安全功能等

(3)进程优先级

系统优先级:数字越小,优先级越高
    0-139(CentOS4,5),各有140个运行队列和过期队列

    0-98,99(CentOS6)
实时优先级: 99-0:值最大优先级最高
nice值:-20到19,对应系统优先级100-139或99 值越大优先级越低进程默认启动时的nice值为0,优先级为120

只有根用户才能降低nice值(提高优先性)
这里写图片描述
(4)进程内存

Page Frame: 页框,用存储页面数据,存储Page 4k 
LRU:Least Recently Used 近期最少使用算法,释放内存
物理地址空间和线性地址空间
MMU:Memory Management Unit负责转换线性和物理地址 
TLB:Translation Lookaside Buffer 翻译后备缓冲器,用于保存虚拟地址和物理地址映射关系的缓存

(5)进程类型

守护进程: daemon,在系统引导过程中启动的进程,和终端无关进程
前台进程:跟终端相关,通过终端启动的进程

注意:两者可相互转化
(6)进程运行状态

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

(7)进程创建

在CentOS6中,第一个进程为init ,在CentOS7中第一个进程为systemed。进程都是由父进程创建的。模式为CoW、fork()、clone()

(8)进程分类

CPU-Bound:CPU密集型,非交互
IO-Bound:IO密集型,交互

(9)其他

一个进程可能包含一个多多个线程,内存共享
task struct:Linux内核存储进程信息的数据结构格式
task list:多个任务的的task struct组成的链表

二、管理进程命令
1、pstree命令

pstree - display a tree of processes
      -p     Show PIDs. 

这里写图片描述

Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中。 

2、ps命令

ps:report a snapshot of the current processes

ps命令支持三种格式

(a)UNIX
(b)BSD
(c)GUN

这里主要介绍BSD模式的命令选项

a 选项包括所有终端中的进程
x 选项包括不链接终端的进程
u 选项显示进程所有者的信息
f 选项显示进程的父进程
k|–sort 属性 对属性排序
o 属性… 选项显示定制的信息pid、comm、%cpu、%mem、state、tty、euser(真正生效者)、ruser(真正发起者)

不加选项默认为当前终端的进程。

示例:
(1)显示所有进程及进程所有者信息
[root@centos7/proc]#ps aux
ps aux命令表头的介绍

USER            进程所有者
PID             进程ID号
%MEM            使用的内存
VSZ             Virtual memory size,虚拟内存集,线性内存,(承诺给的内存)
RSS             ReSident Size,常驻内存集,(真正使用的内存)
TTY             终端
STAT            进程所处状态
    R:running
    S:interruptable sleeping
    D:uninterruptable sleeping
    T:stopped
    Z: zombie
    +: 前台进程
    l: 多线程进程
    L:内存分页并带锁
    N:低优先级进程
    <: 高优先级进程
    s: session leader,会话(子进程)发起者
TIME            运行时间
COMMAND         进程执行的命令

示例:
[root@centos7/proc]#ps axo pid,%mem,tty

-e: 显示所有进程
-f: 显示完整格式程序信息 
-F: 显示更完整格式的进程信息
-H: 以进程层级格式显示进程相关信息
-C:显示多个进程的情况 

3、nice

nice [OPTION] [COMMAND [ARG]...] 

示例:
[root@centos7/proc]#nice -n 2 vim /etc/fstab
这里写图片描述
4、renice命令

renice - alter priority of running processes

示例:
[root@centos7~]#renice -n 5 25362
这里写图片描述
注意:只要root用户可以提高优先级,普通用户只能调低优先级。

5、pgrep

pgrep, pkill - look up or signal processes based on name and other attributes

-u uid: effective user,生效者
-U uid: real user,真正发起运行命令者
-t terminal: 与指定终端相关的进程
-l: 显示进程名
-a: 显示完整格式的进程名
-P pid: 显示指定进程的子进程

示例:
[root@centos7/proc]#pgrep -u joah
6、pidof命令

pidof -- find the process ID of a running program.

示例:

[root@centos7/proc]#pidof vim
25501 25362 17442 16809 16783 7844 7508 4048

7、uptime命令
这里写图片描述

系统平均负载:指在特定时间间隔内运行队列中的平均进程数。

    通常每个CPU内核的当前活动进程数不大于3,那么系统的性能良好。如果每个CPU内核的任务数大于5,那么此主机的性能有严重问题。

8、top命令

P:以占据的CPU百分比,%CPU
M:占据内存百分比,%MEM
T:累积占据CPU时长,TIME+
首部信息显示:
    uptime信息:l命令
    tasks及cpu信息:t命令
    cpu分别显示:1 (数字)
memory信息:m命令退出命令:q
修改刷新时间间隔:s
终止指定进程:k
保存文件:W

这里写图片描述

选项:

-d #: 指定刷新时间间隔,默认为3秒
-b: 全部显示所有进程
-n #: 刷新多少次后退出
9、vmstat命令
这里写图片描述

procs:
     r:可运行(正运行或等待运行)进程的个数,和核心数有关
    b:处于不可中断睡眠态的进程个数(被阻塞的队列的长度)

 memory:
    swpd: 交换内存的使用总量
    free:空闲物理内存总量
    buffer:用于buffer的内存总量 
    cache:用于cache的内存总量

 swap:
      si:从磁盘交换进内存的数据速率(kb/s) 
io:
    bi:从块设备读入数据到系统的速率(kb/s)  
    bo: 保存数据至块设备的速率

 system: 
     in: interrupts 中断速率,包括时钟
     cs: context switch 进程切换速率 
 cpu:

    us:Time spent running non-kernel code 
    sy: Time spent running kernel code
    id: Time spent idle. Linux 2.5.41前,包括IO-wait time.
    wa: Time spent waiting for IO.  2.5.41前,包括in idle.
    st: Time stolen from a virtual machine. 2.6.11前, unknown.

[root@centos7/proc]#vmstat -s#显示内存的统计数据。
9、pmap命令

pmap - report memory map of a process
-x: 显示详细格式的信息

[root@centos7/proc]#pmap -x 1

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页