文章目录
- 一、进程
- 特殊情况
- 二、查看进程
- 2.1进程查看
- 2.2补充说明
- 三、进程管理
- 3.1运维的指标
- 五大负载
- 3.2定时任务、计划任务
一、进程
进程管理 相当于任务管理器
进程就是运行起来的代码
线程:线程相当于复制了进程的部分代码,程序运行起来之后,真正执行的是线程
linux 系统当中启动程序的过程
父进程先启动——————子进程
子进程的资源由父进程进行分配
结束的过程
子进程 先结束--------父进程收回子进程的资源-------父进程才会终止
特殊情况
父进程结束了 子进程 还在 僵尸进程
二、查看进程
查看进程信息氛围两类动态查看 静态查看、动态查看
2.1进程查看
ps-----静态查看进程信息
ps -aux
a 显示终端所有用户的进程
u 列出进程的执行用户
x 显示当前终端的详细信息
USER PID %CPU %MEM VSZ RSS TTY STAT START TIMECOMMAND
root 1 0.0 0.1 193796 6964 ? Ss 10:25 0:01 /us
user :进程的用户
pld :进程号 ,每个进程在系统之中运行的唯一标识
%cpu: 进程占用cpu的百分比
%MEM: 进程占用物理内存
vsz : 进程使用的虚拟内存大小(kb)
RSS :占用物理内存的量 (kb)
TTY :表示终端 ?表示该进程不是由终端启动的
STAT:status 状态 进程的状态
STAT介绍
1、s 处于休眠状态,但是随时可以被唤醒
2、D;处于不可唤醒的休眠状态
3、R 运行
4、T 停止状态,后台进程暂停或者处于跟踪调试状态
5、z 僵尸进程 ,
START;进程启动的时间
TIME;进程实际使用cpu运行的时间
2.2补充说明
在状态后面的字符含义
s ;该进程包含子进程
< ;该进程优先级高
N ;低优先级
l ;该进程有多个线程
+;进程位于前台运行
L;表示该进程有一部分被缩进内存。
pa -aux 主要用来查看系统占用资源的情况
第二种;
ps -elf 静态查看进程信息的方法
e ;显示系统内的所有进程
l 显示进程的详细信息
f 完整的格式展示进程的信息
[root@localhost opt]# ps -elf -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 1 0 0 80 0 - 48449 ep_pol 10:25 ? 00:00:01 /usr/lib/systemd/systemd --switched-root --system --d
F ;内核分配给进程的系统标识
s 进程的状态
UID;该进程的进程号
PPID; 该进程的父进程,谁启动的这个进程
c;进程在生命周期当中的cpu利用
PRI ;优先级 数字越大 优先级越低
NI ;谦让值
ADDR;进程在内存当中的地址
SZ;假如该进程被唤出,需要的交换空间大小
WCHAN;如果进程处于休眠状态,显示睡眠中的系统函数名
STIME ;进程启动的时候
time ;进程实际使用cpu的时间
cmd 进程启动的详细命令
三、进程管理
结束进程的命令;kill -9 ;强制结束该进程
面试题 kill进程是用啥来结束进程的
kill只是传递了一个信号 -9 表示强制和立刻 系统将进程立即结束
特殊进程
vim wait .c
gcc wait.c -o wait.c
小拓展
如果有少量的僵尸进程怎么办?
少量的僵尸进程影响不大,因为僵尸进程所占系统资源很少,可以忽略不计
僵尸进程太多了怎么办?
僵尸进程没有办法通过kill强制结束 重启之后僵尸进程就消失了
动态获取进程信息
top
按1可切换查看cpu当前运载状况
root@localhost ~]# top
top - 11:03:00 up 37 min, 1 user, load average:0.00,0.01,0.05
11.03.00 系统时间
up 系统运行的市场
1 user;当前登录系统的用户load average:0.00,001,0.05系统负载1分钟 0.01 1分钟0.05 5分钟0.05 15分钟系统处理任务数的平均值
Tasks: 186 total, 1 running, 185 sleeping, 0 stopped
0 zombie
进程信息186 total 系统总共有多少个进程
running 运行的进程数
sleeping 休眠的进程数
stopped 终止的进程数
zombie 僵尸进程数%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 stus 系统用户占用cpu的百分比
sy 内核占用cpu的百分比
ni 优先级的调度占用的cpu
id 系统空闲的cpu的比率 主要看id
wa 磁盘的读写性能
hi 1分钟内cpu的使用率
si 五分钟内KiB Mem : 3880728 total, 2882344 free, 345420
KiB Swap: 4063228 total, 4063228 free, 0
free-h 显示的信息
进程信息取各列的作用
pid 进程号
user 进程的用户
pr 优先级
ni 谦让值
VIRT 进程使用虚拟内存 kb
RES 进程使用物理内存 kb
SHR 共享内存的大小
s 进程状态
%cpu 进程占用cpu 的百分比
%MEM 进程占用物理内存的百分比
TIME + 进程使用cpu的时间总计 1/100 秒
commd 进程启动的命令
数字1键 显示cpu的个数大小
c键 根据cpu占用的量的百分比大小 从大到小排序
q 退出
top -b -n -1运行一次 立刻退出
3.1运维的指标
五大负载
cpu负载 监控cpu的使用率的工具 top htop 了解cpu是否过载 cpu占用了85%需要注意力 90%是警告
内存负载 监控内存 free top 内存占用比一般是90%警告 优化;关闭不需要的服务
echo 1 > /proc/sys/vm/drop_caches 清除缓存的命令
硬盘负载 iostat I/O 磁盘读写性能
网络负载; 带宽的利用率,流量的试用情况
进程负载 ;监控进程使用资源的情况 top ps
查找进程
pgrep 查找进程id 一般配合 kill一起使用
-a 显示进程名 和pid号
-c 仅显示匹配进程的数量 不显示其他内容
-f 匹配进程名 以及他们的参数
[root@localhost ~]# pgrep -a nginx
7159 nginx: worker process
7167 nginx: worker process
[root@localhost ~]# pgrep -f nginx
7159
7167
[root@localhost ~]# pgrep -c nginx
2
[root@localhost ~]#
jobs 列出位于后台运行的进程
-l 列出所有后台进程的pid号 ,进程名
-p 列出所有后台的进程组id
-n 仅显示最近的后台进程
-r 仅显示正在运行的后台进程
-s 显示已经停止的后台进程
如何把运行的程序调到后台
在命令行的结尾 加一个&符号,就是把程序放到后台运行
fg 可以把后台的任务调度到前台
3.2定时任务、计划任务
说明
* * * * * (加空格) 一般是可执行的脚本
分时日月 周 ,表示间隔 多个不连续的时间点
分:0-59 (表示该范围内的任意时间)
时:0-23
日:1-31
月:1-12
周:0-7 0-7都表示周日,表示间隔 多个来连续的时间点-表示连续的时间范围/ 表示间隔的频率
用法
* * * * *
分 时 日 月 周
分 0-59
时 0-23
日 1-31
月 1-12
周 0-7 0和7都表示周日
* * * * * 一般是可执行的脚本
Crontab
* * * * *
* 该范围内的任意时间
,表示间隔 多个不连续的时间点
10,30,50 * * * * ls
- 表示连续的时间范围
2-10 * * * * ls
/ 表示间隔的频率
*/5 * * * * ls每天早上的8点30分执行一次ls
30 8 * * *
每天的13-16点30分,执行一次ls
30 13-16 * * *
每个月中,每隔10天的早点6点30分执行一次
30 6 */10 * *
每周三的下午的17点的30-35分钟执行ls.
30-35 17 * * 3
定时任务
Crontab
定时任务是在后台执行
crontab -e创建定时任务,默认就是当前用户执行
crontab -e -u +用户 指定用户创建定时任务
contab -l 展示定时任务
crontab-u 展示用户名
删除定时任务
crontab -e 进去文件后不要那个删除那个
crontab -r 全部删除定时文件 慎用
查看定时任务
执行一次ls
30 8 * * *
每天的13-16点30分,执行一次ls
30 13-16 * * *
每个月中,每隔10天的早点6点30分执行一次
30 6 */10 * *
每周三的下午的17点的30-35分钟执行ls.
30-35 17 * * 3
定时任务Crontab定时任务是在后台执行crontab -e创建定时任务,默认就是当前用户执行 crontab -e -u +用户 指定用户创建定时任务contab -l 展示定时任务crontab-u 展示用户名删除定时任务crontab -e 进去文件后不要那个删除那个crontab -r 全部删除定时文件 慎用查看定时任务crontab -l