Linux学习笔记——进程管理
Part10–进程管理
1.系统资源管理的三个主要方面:
CPU资源(计算)的管理
内存资源的管理
磁盘资源的管理
2.进程:
进程管理与CPU资源管理及内存资源管理密切相关。
Linux系统任务调度管理的基本单元。
可执行代码+相关数据+占用的系统(计算与存储)资源,也可以理解为运行中的程序。
3.程序与进程的关系:
程序:保存在硬盘、光盘等介质中的可执行代码和数据; 是静态保存的代码。
进程:在CPU及内存中运行的程序代码;是动态执行的代码; 每个进程可以创建一个或多个进程(父、子进程)。
4.监控CPU与内存的操作:
uptime命令:得到从开机运行开始系统负载的大致统计数据。
pstree工具:以树型显示各进程间的关系。
ps命令:报告当前进程执行的统计信息。
top工具:查看动态的进程排名信息。
5.uptime命令:
得到从开机运行开始,系统负载的大致统计数据。
例如:$ uptime
13:48:57 up 80 days, 23:19, 3 users, load average: 1.20, 1.06, 1.01
uptime命令报告当前时间、系统已经启动的时间以及有关任务负载的三个平均数:最后一分钟平均活动进程数;最后五分钟平均活动进程数;最后15分钟平均活动进程数。
6.pstree工具:
以树型结构显示各进程间的关系。
pstree -aup:-a表示列出进程对应的完整命令,-u表示列出进程对应的用户名,-p表示列出进程的PID号。
7.ps命令:
报告当前进程执行的统计信息(状态,内存,CPU的使用情况 ),显示瞬间进程的状态,并不动态连续;查看静态的进程统计信息。
常用的选项:ps aux或ps -elfps输出域的含义:
VSZ:使用的虚拟内存
RSS:使用的物理内存
STAT:当前进程的状态
TIME:使用的总的CPU时间
COMMAND:被执行的命令
状态字:
8.top工具:
查看动态的进程排名信息
top反馈的信息
第一行:系统运行时间;
第二行:总进程数;
第三行:当前CPU使用量;
(1)us:用户空间占用CPU百分比
(2)sy:内核空间占用CPU百分比
(3) ni:用户进程空间内改变过优先级进程占用CPU百分比
(4)id:空闲CPU百分比
(5)wa:等待输入输出的CPU时间百分比
第四行:当前内存使用量;
第五行:当前交换空间使用量;
第六行:活跃的进程信息(类似ps命令);
(1)PID:进程号
(2) USER:用户名
(3) PR:进程优先级,越小越早被执行
(4) NI:进程的优先级别数值,与PR有关
(5) VIRT:进程占用的虚拟内存值 VIRT=SWAP+RES
(6) RES:进程占用的物理内存值 RES=CODE+DATA
(7) SHR:进程使用的共享内存值
(8) S:进程的状态
(9) %MEM:进程占用的物理内存占总内存百分比
(10) TIME+:进程启动后占用的总的CPU时间
更新间隔:默认是5秒;可以指定。
linux:
$ top d3
常用命令:
T:根据时间、累计时间排序
P:根据CPU占有情况对进程列表进行排序
M:根据内存占用情况排序
N:根据启动时间进行排序
m:切换显示内存信息
t:切换显示进程和CPU状态信息
C:切换显示命令名称和完整命令行
W:将当前设置写入~/.toprc文件中(top的配置文件)
U:输入用户名系统会切换为指定用户的进程运行界面
h:获得top程序的在线帮助信息
空格:强制更新进程状态显示
q:正常退出top程序
9.CPU与内存资源使用统计:
vmstat命令:统计系统的资源使用,包括CPU与内存。
sar命令:有些系统支持sar命令,可用于CPU资源使用量统计。
10.vmstat命令:
功能:统计系统的资源使用,包括CPU与内存。
命令格式:vmstat interval [count]
– interval:统计间隔
– count:统计次数
r:在运行队列中等待的进程数
b:在等待io的进程数
11.sar命令:
有些系统支持sar命令,可用于CPU资源使用量统计。
命令格式:sar interval [count]
– interval:统计间隔
– count:统计次数
sar反馈的信息
CPU:all 表示统计信息为所有 CPU 的平均值。
%user:显示在用户级别运行使用 CPU 总时间的百分比。
%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。
%system:在核心级别运行所使用 CPU 总时间的百分比。
%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。
%steal:管理程序为另一个虚拟进程提供服务而等待虚拟 CPU 的百分比。
%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。
12.查看进程信息:
pgrep命令:根据特定条件查询进程PID信息。
常用命令选项:
-l:列出进程的名称
-U:根据进程所属的用户名进行查找
-t:根据进程所在的终端进行查找
13.进程的不同启动方式:
手工启动
(1)前台启动:用户输入命令,直接执行程序。
(2)后台启动:在命令行尾加入“&”符号。
调度启动
(1)使用at命令,设置在某个特定的时间,执行一次任务。
(2)使用crontab命令,设置按固定的周期(如每天、每周等)重复执行预先计划好的任务。
14.进程的前后台调度:
Ctrl+Z 组合键
将当前进程挂起,即调入后台并停止执行。
jobs命令
查看处于后台的任务列表。
fg命令
将处于后台的进程恢复到前台运行,需指定任务序号。
15.终止进程的运行:
Ctrl+C组合键
中断正在执行的命令。
kill、killall命令
(1)kill用于终止指定PID号的进程。
(1)killall用于终止指定名称的所有进程。(3)-9 选项用于强制终止。
16.kill命令:
kill用于终止进程。
kill命令发出一个信号给指定的进程。
信号是一个整数,用来指出kill的类型。
进程是由进程号(PID)指定的,所以为了使用kill命令,用户必须知道要终止的进程的PID。
信号: 信号值的取值范围为1到15。15通常是默认的信号值,该值让接收进程终止。
有些进程不受kill信号的影响,可以用信号值9(确认终止)来终止这些进程。
kill -l … 显示信号列表
kill –signal pid
普通用户只能终止自己的进程,系统管理员有权终止任何用户的进程。
PID 0使所有与shell有关的进程终止,包括shell本身。终止用户的所有进程,可以执行如下的命令:kill -9 0 [Return] … 用户退出系统
17.sleep命令:
sleep使执行该命令的进程延时指定的秒数。
18.pkill命令:
pkill根据特定的条件终止相应的进程。
常用命令选项:
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
19.进程的优先级:
每个进程有个优先级,用一个数字表示:-20到20,优先级为-20的进程享有最大的优先级,而优先级为20的进程拥有最少的CPU时间。
用&在后台运行的进程默认优先级为10。
20.nice与renice命令:
nice:启动进程时指定优先级。
nice [-优先级值] 进程名
renice:进程运行中更改优先级。
renice 优先级值 参数 进程名
参数说明:
-p: 修改进程号所标识进程的优先级;
-u:修改指定用户所启动进程的优先级;
-g:修改指定组中所有用户启动进程的优先级。
21.计划管理任务:
at命令:
crontab命令:
22.at命令:
at:在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务。
服务脚本名称:/etc/init.d/atd
设置格式:at [HH:MM] [yyyy-mm-dd]
23.crontab命令:
crontab:按照预先设置的时间周期(分钟、小时、天……)重复执行用户指定的命令操作,属于周期性计划任务。
服务脚本名称:/etc/init.d/crond
主要设置文件
全局配置文件,位于文件:/etc/crontab
系统默认的设置,位于目录:/etc/cron.*/
用户定义的设置,位于文件:/var/spool/cron/用户名管理cron计划任务
编辑计划任务:crontab -e [-u 用户名]
查看计划任务:crontab -l [-u 用户名]
删除计划任务:crontab -r [-u 用户名]
(注:root用户可以管理指定用户的计划任务
普通用户只能管理自己的计划任务)
crontab任务的配置格式
时间数值的特殊表示方法:
* 表示该范围内的任意时间
, 表示间隔的多个不连续时间点
- 表示一个连续的时间范围
/ 指定间隔的时间频率
【应用示例】
0 17 * * 1-5 周一到周五每天17:00
30 8 * * 1,3,5 每周一、三、五的8点30分
0 8-18/2 * * * 8点到18点之间每隔2小时
0 * */3 * * 每隔3天
24.crontab应用示例:
示例1(root用户):
每天早上7:50自动开启sshd服务,22点50时关闭
每隔5天清空一次FTP服务器公共目录/var/ftp/pub
每周六的7:30时,重新启动httpd服务
每周一、三、五的17:30时,打包备份/etc/httpd目录
示例2(jerry用户):
每周日晚上23:55时将“/etc/passwd”文件的内容复制到宿主目录中,保存为pwd.txt文件
示例3:
root用户查看自己的计划任务列表
查看并删除jerry用户设置的计划任务