Linux进程管理简介及进程管理工具

来源:互联网 发布:淘宝网如何注销账户 编辑:程序博客网 时间:2024/04/30 16:51

一、进程管理理论知识简介

1、程序=指令+数据
2、进程是程序的副本,可以有多个。
3、内核是一个资源调度监视器。
4、进程的启动、调度都是由内核完成的
5、cpu的运算能力靠时间流逝提供,内存将空间用于存储程序。
6、内存被事先划分了多个大小相同的页框(page frame),页面(page)可能为数据,在页框内。
7、Linux中的swap(交换分区)即是windows中的虚拟内存,即在内存不够用时使用磁盘资源存放内存中不常用的进程。
8、mmap:memory map–>共享内存空间。它映射至每个进程地址空间。
9、在Linux中,所有在用户空间中启动的进程,除init之外,都由其父进程创建的,其父进程通过fork()系统调用实现。
10、父进程创建子进程后会终止(kill)子进程
11、所有进程的父进程是init。
12、若父进程的子进程无法被收回,内存无法被分配,会导致内存泄漏。
13、内核中有所有进程的信息表。
14、线程(thread):是一个进程内的多个执行流
15、用户空间和内核空间存在模式转换。
16、进程调度是内核的核心。

17、Linux有140个队列,优先级有140个,从0~139.
(1)数字越小,优先级越高(从100~139之间,属于静态优先级)。
(2)实时优先级:1~99,数字越大,优先级越高
(3)动态优先级:由内核维护,动态调整

18、进程的分类:
(1)批处理的进程
(2)交互式进程
(3)实时进程

19、Linux终端和进程的关系:
(1)控制台:/dev/console
(2)物理终端:/dev/pts#
(3)虚拟终端:/dev/tty[1-6]
(4)模拟终端:如ssh
(5)串行终端:/dev/serial或者/dev/ttyS#

(6)进程的两种类别
①跟终端相关的进程
②跟终端无关的进程

二、进程管理命令

1、进程管理的相关命令:
(1)ps (2)pstree (3)pidof (4)top (5)htop (6)pmap
(7)vmstat (8)dstat

2、pstree命令:查看进程树

3、ps命令
(1)作用:用于显示系统当前进程状态的命令
(2)格式:ps [OPTIONS]
(3)选项
①a:显示所有跟终端相关的进程。

# ps a

②x:显示所有跟终端无关的进程。
例:

# ps x

③u:以用户为中心显示进程相关信息
例:

# ps aux

这里写图片描述

各字段含义:USER:用户名PID:进程号%CPU:cputime/realtime,进程占用cpu时间比实际占用cpu时间的比%MEM:进程占用内存和实际内存空间的比例VSZ:Virtual memory Size(虚拟内存集,单位为KB)RSS:实际内存及集(也称非交换物理内存或者常驻内存集)TTY:使用哪个终端(?表示进程与终端无关)STAT:进程的状态    S:可中断睡眠状态    D:不可中断睡眠状态    R:运行或可运行状态    T:停止状态    Z:僵死状态    S:session leader(有子进程)    l:多线程进程    +:前台进程    N:低优先级进程    <:高优先级进程START:进程启动时间TIME:进程进行的时长COMMAND:由哪个命令发起的进程,带{}表示内核线程

④-e:显示所有进程
⑤-f:显示进程完整格式列表
⑥-F:显示进程额外信息
例1:

# ps -ef

这里写图片描述

字段说明:  PPID:父进程的PID号  C:进程占用cpu的时间

例2:

# ps -eF

这里写图片描述

字段说明:  PPID:父进程的PID号  C:进程占用cpu的时间  SZ:类似于(VSZ)虚拟内存集(单位为KB)  RSS:实际内存集  PSR:运行在哪颗CPU上

⑦-H:显示进程层次关系
例:

# ps -eFH

⑧-o:自定义显示格式
例1:只显示进程号和由哪个命令发起

# ps axo pid,command

例2:只显示pid、nice值,并且可翻页显示

# ps axo pid,command,nice | less

4、pgrep命令
(1)格式:pgrep [-flvx] [-u euid…] [-U uid…] … [PATTERN]
(2)作用:指定过滤条件以后显示符合条件的进程
(3)选项:
①-U [USERNAME|UID]:显示相关用户进程
例:

# pgrep -U hadoop

②-G GROUPNAME|GID:显示相关组进程
例:

# pgrep -G cloud

5、pidof命令
(1)作用:显示某个进程的进程号
(2)例:

# pidof bash

6、top命令
(1)top是一个交互式的命令,用于管理并且查看进程。
(2)选项:
①-d #:指定进程信息刷新时间间隔
②-b:以批次显示top刷新
③-n #:指定彼此显示时显示的批数
例:

# top -d 1 -b -n 5每秒刷新一次进程信息,共显示5批次

(3)top命令各字段的解释
这里写图片描述

# top1、第一行:当前系统时间  、  运行时长  、 当前登录用户数  、 平均负载(一般为小数)  cpu平均队列长度,分别为{过去1分钟、过去5分钟、过去15分钟}2、第二行:描述进程总数及状态3、第三行:CPU描述:按1键可展开CPUs的各CPU状态(1%us:用户空间程序的占用百分比(user)(2%sy:内核模式程序的占用百分比(system)(3%ni:调整nice值所占用的cpu百分比(nice)(4%id:CPU的空闲时间比例(idle)(5%wa:等待I/O完成所占据的时间比例(wait)(6%hi:硬件中断所占据cpu时间的百分比(hardware interrupt)(7%si:软件终端所占据cpu时间的百分比(software interrupt)(8%st:被偷走的cpu时间占据的百分比(stolen)4、第七行:(1)VIRT:虚拟内存集(相当于VSZ)(2)RES:实际内存集(相当于RSS)(3)SHR:共享内存集(用到共享库的时候,此处数值会变化)(4)S:进程状态STAT(5%CPU:从上次更新到现在cpu占用百分比(6%MEM:进程占用物理内存百分比(7)TIME+:进程使用CPU时间总计(单位是毫秒)

(4)top命令是根据%CPU进行排序的。

(5)top交互式按键:

①M:按内存空间占用大小排序②P:按CPU时间占用大小排序③T:按累计占有CPU时长排序(TIME+)④k:杀死一个进程,按k后输入PID号即可⑤m:是否显示内存摘要信息⑥t:是否显示CPU和进程的统计信息⑦l:是否显示负载信息⑧q:退出⑨s:改变top命令刷新频率

7、htop命令
(1)交互式命令,支持鼠标操作,与top相似,比top命令更新更强大。
这里写图片描述

(2)htop一些交互式按键:

①u:选定指定用户的进程②l:显示进程所打开的文件列表③s:显示进程执行的系统调用④a:绑定进程到指定CPU上,空格键可取消或增添⑤#:快速将光标定位至指定PID进程上⑥F4:匹配过滤,显示符合条件的进程

8、vwstat命令
(1)作用:显示进程,cpu,内存,io,系统中断等信息。
(2)格式:vmstat [delay [counts]]
①delay:每隔delay秒显示
②counts:一共显示的次数
③例:

# vmstat 3每隔3秒刷新一次,不断显示# vmstat 3 2每隔3秒显示,只显示两次# vmstat只显示一次,不刷新

(3)选项:
①-s:显示内存使用摘要信息(统计数据)

(4)vmstat命令中字段说明
这里写图片描述

1、pross(1)r:运行或等待cpu时间片的进程的个数。(2)b:被阻塞(通常为等待IO完成)的进程队列的长度。2、memory(1)swpd:从物理内存被交换至swap中的数据量。(2)free:未使用的物理内存大小。(3)buffer:缓冲(buffer)空间大小,通常与缓存写操作相关。(4)cache:缓存空间大小,通常与缓存读操作相关。3swap1)si:swap in,数据进入swap中的数据量,通常是速率(kb/s)。(2)so:swap out,数据离开swap中的数据量,通常是速率(kb/s)。4、io(1)bi:block in,从块设备读入内存(或系统)的数据量,通常是速率(kb/s)。(2)bo:block out,保存至块设备中的数据量,通常是速率(kb/s)。5、system(1in:interrupt,中断发生速率,每秒的中断数。(2)cs:context switch,进程切换速率,通常为每秒切换次数。

9、dstat命令
(1)作用:一个多功能的系统资源管理器

(2)使用格式:dstat [-afv] [OPTIONS] [delay [count]]

(3)选项:
①-a:显示cpu、硬盘、网络、内存、系统信息。相当于选项-cdngy
②-f:显示详细信息(扩展信息)
③-c: 显示cpu使用情况
④-d : 显示磁盘使用情况
⑤-g: 显示页面数据
⑥-i: 启用中断数据
⑦-l: 平均负载统计(1分钟,5分钟,15分钟)
⑧-m: 显示内存使用信息
⑨-n: 显示网络信息
⑩-p: enable process stats (runnable,uninterruptible, new)
-r: enable I/O request stats(read, write requests)
-s: 显示交换分区使用信息
-t: 启用时间/日期输出
-y: 系统统计(中断上下文切换)

(4)例:

# dstat -af 5 2显示cpu、硬盘、网络、内存、系统所有信息和扩展信息,每隔5秒刷新一次,显示两次。

三、进程管理命令之二

1、nice和renice命令
(1)作用:手动调整进程优先级

(2)有限的nice值是【-20,19】分别对应于进程优先级【100,139】。
(3)默认nice值为0,其默认优先级为120。

(4)注意:
①普通用户只能调大nice值,nice值越大,其对应的优先级数字越大,优先级越小。
②管理员可以在【20,19】内任意调整nice值

5、对于尚未启用的程序,调整nice值的格式为
(1)格式:# nice -n # COMMAND
(2)例:

# nice -n -5 /bin/bashps axo pid,ni,command | grep "bash"检查bash进程的nice值是否被调整

6、对于运行中的进程,调整其nice值的格式
(1)格式:renice # PID
(2)例:

# pidof bash# renice -6 7522275222为bash的进程号也可以使用命令修改# renice -6 `pidof bash`

四、进程间通信及命令

1、进程的通信分类
(1)本机通信
①通过信号
②共享内存
(2)跨主机通信
①RPC,远程过程调用
②socket

2、kill命令
(1)作用:用于实现向其他进程发送信号
(2)常用格式:kill -SIGNAL PID

(3)-SIGNAL的表示方法
①数字代号:如1、9等(man 7 signal可查看)
②信号名称:如SIGHUP等
③简写的信号名称:如HUP等

(4)常用选项
①-l:可以查看进程发送的常用信号(man 7 signal也可查看)
②例:

# kill -l1、常用信号数字代号及信号名称1)SIGUP:通知程序重读配置文件;而不用重启程序;在进程服务多人使用时候,这种方法可以不用停止服务从而修改服务的配置。2)SIGINT:signal interrupt(中断信号)。相当于发送Ctrl+c9)SIGKILL:杀死进程,直接杀死,容易使进程服务异常。15)SIGTERM:终止进程,留以足够时间使进程停止并终止(终止进程时候默认使用该信号)19)SIGSTOP:停止进程18)SIGCONT:恢复进程

③例:

kill -15 75698

3、killall命令
(1)格式:killall -SIGNAL command
(2)例:

# killall -15 httpd

五、Linux作业控制

1、前台作业:占据着一个终端
2、后台作业:作业执行时不占据终端。作业在启动后就释放终端。

3、非守护进程类的程序,启动以后都在前台工作
(1)如果已经启动,按Ctrl+z把前台作业送往后台,作业被停止
(2)如果尚未启动:COMMAND & 将前台作业送去后台。
(3)例:

# tar Jcf /tmp/etc_usr.tar.xz /etc/* /usr/*# Ctrl+z

4、退出当前回话,作业也会终止
(1)因为作业与当前终端相关
(2)如果把作业送往后台后,不期望作业随终端结束而而终止,使用命令
nohup COMMAND & 剥离终端与作业的关系。既能送到后台,又能避免前台终端终止而导致作业终止。

5、查看作业号命令
(1)格式:jobs
(2)例:

# tar Jcf /tmp/etc_usr.tar.xz /etc/* /usr/*# Ctrl+z# vim /tmp/fstab# Ctrl+z# cat # Ctrl+z# jobs

这里写图片描述

(3)jobs中字段:
+为fg、bg命令默认调度的作业
-为“+”后一个调度的作业

(4)jobs的默认作业调度是后进先出的,像栈。

6、让送往后台的作业继续执行的命令
(1)将作业调回前台继续执行:fg [%job_num]
①例:

# fg %3

(2)让作业在后台继续运行:bg [%job_num]
①例:

# bg %2

7、终止作业
(1)格式:kill [%job_num]
(2)例:

# kill %3

六、pmap命令

1、作用:查看进程所在的内存空间映射表
该命令来自于文件/proc/(pid)/maps中

2、格式:pmap pid
(1)例:

# pmap `pidof vim`

这里写图片描述

3、字段说明
(1)进程所在内存的起始内存地址
(2)进程占据空间大小
(3)内存区域访问权限
(4)该进程关联的库文件及二进制文件。

以上是我个人的总结,如有错误,欢迎大家指出,谢谢大家。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 58热敏小票打印机口松了怎么办 王鹏的眼睛今天起疙瘩了怎么办 背包带子老从肩膀滑下来怎么办 绝地求生用手机流量更新不成怎么办 手机拍的视频在电脑上放不了怎么办 炉石传说手机点登陆游戏闪退怎么办 车到信号屏蔽区一键启动不了怎么办 王者荣耀战队活跃度满了怎么办 win10你的账户已被停用怎么办 电脑一键还原后一直黑屏怎么办? 被打了狂犬疫苗的狗咬伤怎么办 美版苹果7系统坏了怎么办 韩服的球球大作战网络不稳定怎么办 球球大作战号删了找不回来怎么办 队友传足球球的时候接不到怎么办 魅族手机中病毒锁机了怎么办? vbs打开是和文本文档一样怎么办 把电脑注册表删了电脑动不了怎么办 注册表删一项后电脑启动不了怎么办 解压过的过的软件安装包损坏怎么办 手机中病毒自动发短信扣费怎么办 苹果手机中的高德地图打不开怎么办 大晚上挂了别人的车怎么办 手机不兼容高版本微信怎么办 绝地求生右下角小地图变大了怎么办 杯孕当月做了C丁怎么办 玩全军出击手机发烫就出现卡怎么办 不小心买了彩虹六号肝帝版本怎么办 微信游戏刺激战场电脑卡怎么办 电脑更新了以前的东西都没了怎么办 安装黑苹果鼠标键盘不能用怎么办 苹果开机卡在白底黑苹果怎么办 信长之野望14没有剧情触发怎么办 玩cf手游手机屏幕摩擦力大怎么办 网吧有战地1没有橘子平台怎么办 俩人打仗了对方想讹我怎么办 环世界模组装多了打不开怎么办 手机百度云视频播放画面太小怎么办 ps文件说数据似乎已经损坏怎么办 百度云中的压缩包下载的很慢怎么办 游戏压缩出现未知错误或损坏怎么办