进程和计划任务管理07

进程和计划任务管理07

一、进程

进程管理相当于windows的任务管理器。

程序是一串没有运行的代码。

进程是运行起来的代码。

线程:相当于复制了进程的部分代码,程序运行起来之后,真正执行的是线程。

1、linux系统当中启动程序与结束的过程

启动的过程

父进程先启动-------子进程的资源由父进程来进行分配。

结束的过程:

子进程先结束-----父进程收回子进程的资源-------父进程才会终止

特殊情况:

父进程结束,子进程还在-----僵尸进程

2、查看进程信息

查看进程信息主要有两种方式

1、静态查看

2、动态查看

3、ps命令

ps------静态查看进程信息。

3.1方法一:ps -aux

ps -aux

a:显示终端上的所有进程,包括其他用户的进程。

u:列出进程的执行用户。

x:显示当前终端详细的进程信息

3.1.1、ps -aux分析进程信息
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 202280  6660 ?        Ss   5月22   0:49 /usr/lib/systemd/systemd --switched-root --sys
root          2  0.0  0.0      0     0 ?        S    5月22   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    5月22   0:14 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   5月22   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    5月22   0:08 [migration/0]
root          8  0.0  0.0      0     0 ?        S    5月22   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    5月22   1:00 [rcu_sched]

user:进程的用户

(重要)pid:进程号,每个进程在系统中运行时的唯一标志。每个pid都是不重复的

(重要)%CPU:进程占用cpu的百分比

(重要)%MEM :进程占用物理内存的百分比

vsz:进程使用的虚拟内存大小(kb)

(重要)RSS:占用物理内存的量(kb)

tty:表示终端。?表示该进程不是由终端启动的

(重要)STAT:status状态

进程状态:

1、S:sleep 处于休眠状态,但是随时可唤醒。

2、D:处于不可唤醒的休眠。

3、R:运行。

4、T:停止状态,后台进程暂停或者进程处于跟踪调试状态。

5、Z:僵尸进程,父进程先结束,子进程还在。

START:进程启动的时间。

(重要) TIME:进程实际使用cpu运行的时间。

COMMAND:进程启动的命令。

补充说明:

在状态后面的字符含义

s:该进程包含子进程

<:该进程优先级高

N:低优先级

l:该进程有多个线程

+:该进程位于前台运行

L:该进程有一部门被锁进内存。在内存中运行不会被写入磁盘。

ps -aux主要用来查看进程占用系统资源的情况。

3.2、第二种:ps -elf

ps -elf 也是静态查看进程信息的方法

e:显示系统内的所有进程

l:显示进程的详细信息

f:完整的格式显示进程的信息。

3.2.1、ps -elf分析进程的信息
F S UID         PID   PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root          1      0  0  80   0 - 50570 ep_pol 5月22 ?       00:00:49 /usr/lib/systemd/systemd --switched-
1 S root          2      0  0  80   0 -     0 kthrea 5月22 ?       00:00:00 [kthreadd]
1 S root          3      2  0  80   0 -     0 smpboo 5月22 ?       00:00:15 [ksoftirqd/0]
1 S root          5      2  0  60 -20 -     0 worker 5月22 ?       00:00:00 [kworker/0:0H]
1 S root          7      2  0 -40   - -     0 smpboo 5月22 ?       00:00:08 [migration/0]
1 S root          8      2  0  80   0 -     0 rcu_gp 5月22 ?       00:00:00 [rcu_bh]
1 S root          9      2  0  80   0 -     0 rcu_gp 5月22 ?       00:01:03 [rcu_sched]

F:内核分配给进程的系统标识

S:进程的状态

UID:该进程的用户

pid:该进程的进程号

PPID:该进程的父进程,谁启动的这个进程

(重要)c:进程在生命周期当中的cpu利用率。

PRI:优先级 数字越大,优先级越低

NI:谦让值

ADDR:进程在内存当中的地址。

SZ:假如该进程被换出,需要的交换空间的大小

WCHAN:如果进程处于休眠状态,显示睡眠中的系统函数名

STIME:进程启动的时间

time:进程实际使用cpu运行的时间

cmd:进程启动详细命令

二、进程管理

1、僵尸进程

特殊的进程:僵尸进程

结束进程的命令:kill

kill -9 强制结束该进程

2、一问一答

问题一:kill 进程是谁来结束进程?

答:kill只是传递一个信号 ,标识-9表示强制和立即。系统将进程结束。

问题二:如果有僵尸进程你应该怎么办?

答:少量的僵尸进程影响不大,因为僵尸进程所占的系统资源很少,可以忽略不计。

问题三:僵尸进程太多了怎么办?

答:僵尸进程没有办法通过kill强制结束。

​ 重启之后僵尸进程就消失。

3、top命令

top------------------------动态获取进程信息

3.1、top进程的信息

top - 11:05:24 up 1 day, 11:17,  4 users,  load average: 0.00, 0.01, 0.14
Tasks: 235 total,   1 running, 233 sleeping,   1 stopped,   0 zombie
%Cpu(s):  5.4 us,  7.4 sy,  0.0 ni, 87.2 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
#free -h 内存信息
KiB Mem :  3861508 total,   473332 free,   999272 used,  2388904 buff/cache
KiB Swap:  4063228 total,  4057084 free,     6144 used.  2280536 avail Mem 

11:05:24:系统时间

up:系统运行的时长

4 users:当前登录系统的用户

load average: 0.00, 0.01, 0.14

系统的负载 0.00 1分钟内 0.01 5分钟内 0.14 15分钟内 系统处理的任务数的平均值

Tasks: 235 total, 1 running, 233 sleeping, 1 stopped, 0 zombie

进程信息:219 total 系统总共有多少个进程

​ running 运行的进程数

​ sleeping 休眠的进程数

​ stop:终止的进程数

​ zombie:僵尸进程数

(重点)%Cpu(s): 5.4 us, 7.4 sy, 0.0 ni, 87.2 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

us:系统用户占用cpu的百分比

(重点)sy:内核占用cpu的百分比

ni:优先级的调度占用的cpu

(重点)id:系统空闲的cpu比率 主要看id

wa:磁盘的读写性能

hi:1分钟内cpu的使用率

si:5分钟内cpu的使用率

st:15分钟内cpu的使用率

3.1.1、进程信息区各列的作用
PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

PID:进程号

USER:进程用户

PR:优先级

NI:谦让值

VIRT:进程使用的虚拟内存(kb)

RES:进程使用的物理内存(kb)

SHR:进程使用共享内存的大小

S:进程的状态

(重点)%CPU:进程占用cpu的百分比

(重点) %MEM :进程占用物理内存的百分比

TIME+:进程使用cpu的时间总计1/100秒

COMMAND:进程启动的

小tips:按 数字键1 显示cpu的个数和状态

​ 按 c键 根据cpu占用量的百分比大小,从大到小排序

​ 按 q键 退出top

top -b -n 1:运行一次后立刻退出top相当于ps静态

4、运维的指标:

(重点)五大负载:

cpu负载:监控cpu的使用率 工具:top htop,了解cpu是否过载,cpu占用了85%需要注意了90%告警

(重点)内存负载:监控内存free top内存占用比一般是90%告警,
优化:关闭不需要的服务,释放缓存 .

清理缓存命令:echo 1 > /proc/sys/vm/drop_caches

(重点)硬盘负载:I/O 磁盘的读写性能

4.1、iostat命令

iostat:显示磁盘和输入/输出操作的统计信息

4.1.1、分析进程信息
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn

kB_read/s:每秒读

kB_wrtn/s :每秒写

kB_read:总共读

kB_wrtn:总共写

网络负载:带宽的利用率,流量的使用情况。

进程负载:监控进程使用资源的情况 top ps。

4.2、pgrep命令

pgrep 查找进程id 一般配合kill一起使用。

(重点)-a:显示进程名和pid号

-c:仅显示匹配进程的数量,不显示其他内容,一般不用

-f:匹配进程名及其参数

4.3、jobs命令

jobs:列出位于后台进程

(重点)-l :列出后台进程的pid号,进程名

-p:列出所有后台进程进程组id 只有pid

-n:仅显示最近的后台进程

-r:仅显示正在运行的后台进程

-s:仅显示已经停止的后台进程

问题一:如何把运行的程序调度到后台:

答:在命令的结尾加一个 & 把进程调度到后台运行

tips:fg可以把后台的任务调度到前台

三、计划任务管理

1、计划任务(定时任务)

1.1、crontab命令

crontab -e 建立定时任务 默认当前用户执行

crontab -e -u 用户名 指定用户创建定时任务

定时任务在后台执行

crontab -l 展示当前定时任务

crontab -l -u 展示指定用户的任务

删除定时任务

crontab -r 是全部清空,慎用!!

crontabl -e 进去不用哪个删那个

1.2、执行脚本⁕⁕⁕⁕⁕

⁕ ⁕ ⁕ ⁕ ⁕ 对应表示 分 时 日 月 周
取值范围
分 :0-59
时 :0-23
日:1-31
月:1-12
周:0-7 0和7都表示周日

1.2.1、⁕⁕⁕⁕⁕用法

⁕ ⁕ ⁕ ⁕ ⁕ 一般是可执行的脚本

⁕:该范围内的任意时间

,:表示间隔 多个不连续的时间点
例如:每10分钟 20分钟 30分钟 执行一次
10,20,30 * * * * ls

-:表示连续的时间范围

/:表示间隔的频率
例如:每间隔5小时
*/5 * * *ls
举例:
每天早上的8点30分执行一次ls
30 8 * * * ls
每天早上的13-16点30分,执行一次ls
30 13-16 * * * ls
每个月中,每隔10天的早上6点30分执行一次
30 6 */10 * * ls
每周三的下午的17点的30-35分钟执行ls
30-35 17 * * 3 ls

  • 37
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值