进程管理
进程管理:正在运行的程序管理;
进程管理
进程简介:
进程:进程是已启动的可执行程序的运行实例;
程序:具有执行代码和执行权限的文本文件;
进程由以下组成部分:
- 一个文件;
- 被配内存的地址空间;
- 有权限限制;
- 程序代码的一个或多个副本(也叫执行线程);
- 拥有状态
进程拥有的资源权限:
- 内存
- CPU(分片:1s分成1000份,200份浏览器,200粉word。。。)
- 网络
- 名字PID(process identi进程的身份证号)
- 权限
- 自我复制
- 磁盘空间
- 磁盘IO(输入和输出)
- ......
进程的生命周期
由系统程序,fork出来的子程序。
具有一定的父资源(权利,内存空间,PID);
运行完毕,退出程序;
进程状态
R:run:运行
T:stop:停
Z:zombie:退出
S:sleep:休眠
进程管理process
目标:
- 了解进程的相关信息
- PID,PPID
- 当前的进程状态
- 内存的分配情况
- CPU和已花费的实际时间
- 用户UID,它决定进程的特权
- 进程名称
静态查看进程ps
ps aux命令:查看进程管理器
ps aux | head -2 USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.3 193580 6716 ? Ss 16:07 0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 21
USER:运行进程的用户; PID:进程ID;(编号,不可重复) %CPU:CPU占用率; %MEM:内存占用率 VSZ:占用虚拟内存 RSS:占用实际内存 TTY:进程运行的终端类型 STAY:进程状态 START:进程的启动时间 TIME:进程占用CPU的总时间 COMMAND:进程文件,进程名
命令参数声是
ps a:显示现行终端机下的所有程序
ps u:以用户为主的格式来显示程序状况
ps x:不以终端机来区分;
进程排序
ps aux --sort (-)列名:进程排序(降)升序
eg:
[root@localhost 001]# ps aux --sort -%cpu 降序排列进程cpu
[root@localhost 001]# ps aux --sort %cpu 升序排列进程cpu
进程的父子关系
ps -ef 查看进程的父子关系 root 15428 14967 0 11:30 pts/1 00:00:00 ps -ef [root@localhost 001]# ps -ef | head -1 UID PID PPID C STIME TTY TIME CMD PID:程序的名字 PPID :父系程序的名字 查看进程的父子关系,看PID和PPID。
自定义显示字段
ps axo 想显示的列名 [root@localhost 001]# ps axo user,pid,ppid |head -3 USER PID PPID root 1 0 root 2 0
动态查看进程top
Q键退出去;
top - 23:17:52 up 46 min, 2 users, load average: 0.00, 0.01, 0.05 Tasks: 236 total, 2 running, 234 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.3 us, 0.4 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 1867292 total, 590728 free, 583916 used, 692648 buff/cache KiB Swap: 4194300 total, 4194300 free, 0 used. 1065592 avail Mem 系统的性能信息 第一行:top - 23:17:52 up 46 min, 2 users, load average: 0.00, 0.01, 0.05
程序名-系统时间 运行时间 登录用户数 CPU负载 1分钟 5 15
程序的名称和时间
第二行:Tasks: 236 total, 2 running, 234 sleeping, 0 stopped, 0 zombie
总进程数 运行数 睡眠数 停止数 僵死数
进程的数量
第三行:%Cpu(s): 0.3 us, 0.4 sy, 0.0 ni, 99.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
CPU使用占比 u$用户 sy系统 ni优先级 id空闲 wa等待 hi硬件 si软件 st虚拟机
CPU占比
第四行:KiB Mem : 1867292 total, 590728 free, 583916 used, 692648 buff/cache
物理内存K total总共4G free空闲1G userd使用500M cache缓存硬盘内容2G
存储方面的占比
第五行:KiB Swap: 4194300 total, 4194300 free, 0 used. 1065592 avail Mem
存储方面的占比(交换分区)
下半部分
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程号 启动的用户 优先级 内存 状态 cpu占比 运行时间
其它
h|?帮助 M按内存的使用排序 P按CPU使用排序 N以PID的大小排序 <向前 >向后 z彩色 Z设置彩色,使数字对齐
eg:top -d n:计算机n秒刷新一次
top -d n -p 10126 查看指定进程的动态信息
使用信号控制进程
信号种类
给进程发送信号(kill -l列出所有支持的信号) kill -n 编号 信息号 1.SIGHUP 重新加载配置 2.SI1GINT 键盘中断CTRL+C 3.SIGQUIT 键盘退出CTRL+\,类似SIGINT 9.SIGKILL 强制允许,无条件 15.SIGTERM 终止(正常结束),缺省信号 18.SIGCONT 继续 19.SIGSTOP 暂停 20.SIGTSTP 键盘暂停ctrl+z
eg: 信号9.15 kill -n pid号 会查看,管理,控制。(ps,top,kill)
进程优先级nice
简介:Linux进程调度及多任务
每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。
优先级范围和特性
系统中二种优先级 在top中显示的优先级有二个,PR值和nice值。 NI:实际nice值。 PR(+20):将nice级别显示位映射到更大优先级队列,-20映射到0,+19映射到+39; -20——+19
优先级特性: nice值越大:表示优先级越低; nice值越小,表示优先级越高;
查看进程的nice级别
[root@localhost 001]# ps axo pid,command,nice --sort=-nice ps axo指定显示的列; 第一列:ID 第二列:程序名 第三列:优先级
启动具有不同nice级别的进程
(每个进程在启动时,都会进程父进程,优先级为0;)
sleep +n 倒计时程序;启动让计算机延后n秒 eg: [root@localhost 001]# sleep 9 & [1] 15243 [root@localhost 001]#
更改现有进程的nice级别
创建一个睡眠程序 [root@localhost 001]# sleep 00 & #把系统丢到后台运行 [1] 15511 [1]+ 完成 sleep 00 [root@localhost 001]# ps axo pid,command,nice | grep sleep 15281 sleep 999 -5 15397 sleep 7000 0 15471 sleep 60 0 15516 grep --color=auto sleep 0 [root@localhost 001]# renice -20 15281 15281 (进程 ID) 旧优先级为 -5,新优先级为 -20 [root@localhost 001]# ps axo pid,command,nice | grep sleep 15281 sleep 999 -20 15397 sleep 7000 0 15539 sleep 60 0 15541 grep --color=auto sleep 0
或者运用top命令来查看优先级为多少
[root@localhost 001]#
[root@localhost 001]# top -d 1 -p 15281
作业控制jobs
作业控制是一个命令行功能,也叫后台运行。
fg:foreground:前台进程:是终端中运行的命令,占领终端。
bg:background:后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行;
后台程序控制示例: [root@localhost 001]# sleep 9999 ^C [root@localhost 001]# &运行后台程序(把程序丢到后台执行) [root@localhost 001]# sleep 388 & [1] 55810 [root@localhost 001]# ps 查询所有程序 [root@localhost 001]# ps aux | grep sleep root 15397 0.0 0.0 107896 608 ? S 21:05 0:00 sleep 7000 root 55810 0.0 0.0 107896 608 pts/2 S 22:07 0:00 sleep 388 root 55824 0.0 0.0 107896 608 ? S 22:08 0:00 sleep 60 root 55827 0.0 0.0 112664 956 pts/2 S+ 22:08 0:00 grep --color=auto sleep [root@localhost 001]# jobs查看后台进程 [root@localhost 001]# jobs [1]+ 运行中 sleep 388 & [root@localhost 001]# 调动后台程序至前台 [root@localhost 001]# fg 1 sleep 388 ^Z [1]+ 已停止 sleep 388 消灭后台进程kill %n [root@localhost 001]# kill %1
虚拟文件系统proc
简介:虚拟文件系统:采集服务器自身内核,进程运行的状态信息。 CPU:cat /proc/cpuinfo 内存less /proc/cmdline 内核:cat /proc/cmdline