1.进程管理
(1)进程有以下组成成分:
·已分配内存的地址空间
·安全属性,包括所有权凭据和特权
·程序代码的一个或多个执行线程
·进程状态
程序:二进制文件,静态。例如/usr/bin/passwd,/usr/bin/cat
进程:是程序运行的过程,动态,有生命周期及运行状态
生命周期:
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程ID(PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代。
Centos5/6系统进程:init Centos7系统进程:systemd
进程状态:
R(running) 运行状态
T(stopped)停止状态
S(sleeping)睡眠状态
Z(zombies)僵尸状态
(2)静态查看进程ps
静态查看进程ps aux
//静态查看进程ps
ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
//每个字段含义
USER 运行进程的用户
PID 进程ID
%CPU CPU占用率
%MEN 内存占用率
VSZ 占用虚拟内存
RSS 占用实际内存
TTY 进程运行终端
STAT 进程状态man ps(/STATE)
START 进程的启动时间
TIME 进程占用CPU的总时间
COMMAND 进程文件,进程名
//命令参数说明
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况
ps x 不以终端机来区分
//进程排序
ps aux --sort 字段名
以CPU占比排列
ps aux --sort %cpu 正序
ps aux --sort -%cpu 降序
//进程的父子关系
ps -ef
查看进程的父子关系,观察PID和PPID
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 02:17 ? 00:00:08 /usr/lib/systemd/systemd --switched-r
root 2 0 0 02:17 ? 00:00:00 [kthreadd]
root 3 2 0 02:17 ? 00:00:01 [ksoftirqd/0]
root 5 2 0 02:17 ? 00:00:00 [kworker/0:0H]
//自定义显示字段
ps axo 字段名
[root@localhost ~]# ps axo user,pid,command
USER PID COMMAND
root 1 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root 2 [kthreadd]
root 3 [ksoftirqd/0]
root 5 [kworker/0:0H]
动态查看进程top
//上半部分
top - 11:04:02 up 8:46, 3 users, load average: 0.06, 0.03, 0.05
Tasks: 202 total, 2 running, 200 sleeping, 0 stopped, 0 zombie
%Cpu(s): 16.7 us, 5.4 sy, 0.0 ni, 77.6 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 995896 total, 67132 free, 663400 used, 265364 buff/cache
KiB Swap: 2097148 total, 2009852 free, 87296 used. 91204 avail Mem
第一行:top - 11:04:02 up 8:46, 3 users, load average: 0.06, 0.03, 0.05
程序名 系统时间 运行时间 登录用户数 CPU负载 五分钟 十分钟 十五分钟
第二行:Tasks: 202 total, 2 running, 200 sleeping, 0 stopped, 0 zombie
总进程数 运行数 睡眠数 停止数 僵尸数
第三行:%Cpu(s): 16.7 us, 5.4 sy, 0.0 ni, 77.6 id, 0.0 wa, 0.0 hi, 0.3 si, 0.0 st
CPU使用占比 us用户 sy系统 ni优先级 id空闲 wa等待 hi硬件 si软件 st虚拟机
第四行:KiB Mem : 995896 total, 67132 free, 663400 used, 265364 buff/cache
物理内存K total总共 free空闲 userd使用 cache缓存硬盘内容
第五行:KiB Swap: 2097148 total, 2009852 free, 87296 used. 91204 avail Mem
交换区 total总共 free空闲 userd使用 可用于下一次分配的物理内存数量
//下半部分
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
进程ID 运行进程用户 系统优先级 nice值 进程使用的虚拟内存总量 进程使用的、未被换出的物理内存大小 共享内存大小 进程状态 占用CPU资源百分比 占用物理内存百分比 进程使用的CPU时间总计 该进程实际指令
//top常用内部指令
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前
> 向后
z 彩色,Z设置彩色,使用数字调整
//top技巧
动态查看进程top,像windows的任务管理器
top //回车,立即刷新。按z彩色显示,按F,通过光标设置字段显示
top -d 1 //每一秒刷新
top -p //查看指定进程的动态信息,若想查看多个进程信息,用逗号隔开
使用信号控制进程
//信号种类
kill -l //列出所有支持的信号
编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断Ctrl+C
3) SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9) SIGKILL 强制终止,无条件
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 暂停
20) SIGTSTP 键盘暂停Ctrl+z
进程优先级nice
//简介
Linux进程调度及多任务
每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序
//优先级范围和特性
系统的两种优先级:
在top中显示的优先级有两个,PR值和nice值
NI:实际nice值
PR(+20):将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39
优先级特性:
nice值越大:表示优先级越低,例如+19
nice值越小:表示优先级越高,例如-20
//查看进程的nice级别
ps axo pid,command,nice --sort=-nice
//更改现有进程的nice级别
rencie 值 PID
2.作业控制jobs
//简介:作业控制是一个命令行功能,也叫后台运行
//关键词介绍:
foreground:前台进程:是在终端运行的命令,占领终端
background:后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行
//jobs查看后台进程
jobs
//调动后台程序至前台
fg 作业编号
//消灭后台进程
kill %作业编号 (一定不要忘记%号)
//总结
& 后台运行程序
jobs 查询后台
kill %1 停止后台进程
3.虚拟文件系统proc
//简介
虚拟文件系统:采集服务器自身 内核、进程运行的状态信息
//CPU
/proc/cpuinfo
//内存
/proc/meninfo
//内核
/proc/cmdline