Linux进程和任务计划管理
Posted 28线不知名云架构师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux进程和任务计划管理相关的知识,希望对你有一定的参考价值。
一、进程
1.1基本概念
程序:通常为二进制程序,以物理文件方式储存在硬盘中
进程:一个程序触发时,程序的代码和数据会加载到内存中运行,并产生一个随机的pid,这个在运行的程序就是一个进程,一个程序有可能产生多个进程,进程由CPU处理,CPU同一时刻只能处理一个进程
①父进程和子进程:每个进程都有父进程,然后由父进程产生一个同样的子进程,父进程的唯一标识符为ppid,子进程的唯一标识符为pid
②子进程完成任务后会自杀并发消息给父进程,由父进程回收子进程占有的资源,如果父进程没有收到消息,子进程就会变为僵尸进程(不会自杀,一直在占用资源),此时可以杀死其父进程,让子进程变为孤儿进程(父进程失效,子进程仍在),孤儿进程后会变为系统的第一个产生的进程systemd的子进程
③一个进程有一个或多个线程,两个不同进程分配了不同的内存空间基本不能同时通信,但是同一个进程下的不同线程可以互相访问
1.2系统进程的查看
ps -elf :静态查看系统进程
ps aux :静态查看系统进程
ps -o user,pid :指定内容类型来查看进程内容
pstree :看进程树
pstree -u :在进程树查看进程由哪个用户产生使用
pstree -p :在进程树中显示进程的pid
pgrep -l 进程名 :查看进程号
pgrep -u 用户名 -l 进程名 :查看用户的进程的进程号
kill 进程号 :杀死进程,给进程一个缓解过程,等进程把任务做完
kill -9 进程号:强制杀死进程
kill -l :显示kill能够使用的选项
killall :杀死进程,包括其子进程
jobs :看后台进程
top :动态查看系统进程,默认3s刷新列表,会进入一个交互模式,按M表示按内存大小排序,按N表示按PID排序,按q退出,按s更改刷新时间
top -d 5 :进入动态查看系统进程的交互模式,并直接设置刷新时间为5秒
top -p pid号 :查看单独进程
fg 后台任务号 :将后台任务放在前台处理
bg 后台任务号 :后台任务恢复执行
1.3查看的内容
①F:表示进程标识,说明此进程的权限,4表示此进程权限为root,1表示此子进程仅执行复制而没有实际执行
②S和STAT:表示此进程的状态,进程的状态分为五种
1)R(Running):运行状态
2)S(Sleep):表示可中断的睡眠状态
3)D:表示不可中断的睡眠状态
4)T:停止状态
5)Z:僵尸状态
③STAT的第二位表示:<表示有高优先级,+表示当前进程运行在前台,N表示低优先级,l表示多线程,s表示控制进程
④C(CPU):表示占CPU的利用率
PRI/NI:(priority/nice),这两个值的和表示此进程被CPU处理的优先级,优先级越小,越先被CPU处理,PRI不可更改,可以更改NI来调整此进程的优先级
⑤ADDR/SZ/WCHAN:都与内存有关,ADDR表示该进程在内存的哪个部分,如果是个running的进程,一般会显示【-】,SZ表示该进程用掉了多少内存,WCHAN表示进程是否运行,【-】表示正在运行
⑥TTY:表示登录的终端,有tty1-6,可以按Ctrl+Alt+F1-6来切换不同的终端,如果这里是pts/n表示为远程登录使用终端
⑦TIME:表示进程花费CPU运行的时间
⑧CMD(COMMAND):触发该进程的实际命令
⑨START:表示该进程被触发启动时间
⑩RSS:实际占用物理内存
⑾MEM:占物理内存百分比
1.4、TOP显示
[root@AIDEBOY ~]# top
top - 15:48:38 up 1 day, 4:38, 2 users, load average: 0.00, 0.01, 0.11
Tasks: 231 total, 1 running, 230 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.2 us, 5.3 sy, 0.0 ni, 94.4 id, 0.0 wa, 0.0 hi, 0.1 si, 0.0 st
KiB Mem : 1863248 total, 123168 free, 776068 used, 964012 buff/cache
KiB Swap: 3145724 total, 3145460 free, 264 used. 789200 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
6395 polkitd 20 0 616516 15072 5164 S 13.0 0.8 33:21.15 polkitd
6345 dbus 20 0 70996 4556 1964 S 9.0 0.2 25:34.26 dbus-daemon
6330 root 20 0 396592 4316 3380 S 8.6 0.2 21:29.24 accounts-daemon
8195 root 20 0 456912 5592 2920 S 2.3 0.3 7:34.42 gsd-account
9 root 20 0 0 0 0 S 0.3 0.0 0:22.05 rcu_sched
27283 whd 20 0 160848 2592 1236 S 0.3 0.1 0:00.60 sshd
1 root 20 0 193948 7088 4164 S 0.0 0.4 0:07.07 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.12 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:01.70 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
7 root rt 0 0 0 0 S 0.0 0.0 0:00.22 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.67 watchdog/0
12 root rt 0 0 0 0 S 0.0 0.0 0:00.65 watchdog/1
13 root rt 0 0 0 0 S 0.0 0.0 0:00.80 migration/1
14 root 20 0 0 0 0 S 0.0 0.0 0:01.79 ksoftirqd/1
16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H
注释:
①第一行表示的意思:
目前的时间 15:48:38,开机到限制所经过的时间up 1 day, 4:38,以及登陆系统的用户人数 2 users,
load average: 0.00, 0.01, 0.11:系统在1分钟、5分钟、15分钟的平均负载,数值越小表示系统越闲置,大于1就得注意系统进程是否太繁忙了
②第二行表示目前进程的总量以及其他状态进程的数量,要注意zombie这个数值,如果不是0表示有僵尸进程
③第3行:CpusCPU相关信息,如果是多核 CPU,按数字1可显示各核CPU信息,此时1行将转为Cpu核数行,数字1可以来回切换。
第1段:us用户空间占用CPU百分比
第2段:sy内核空间占用CPU百分比
第3段:ni用户进程空间内改变过优先级的进程占用CPU百分比
第4段:id空闲CPU百分比
第5段:wa(wait)等待输入输出的CPU时间百分比,表示i/o wait,通常系统会变慢都是i/o产生的问题比较大,要注意这个耗用的CPU资源
第6段:hiCPU服务于硬件中断所耗费的时间总额
第7段:siCPU服务软中断所耗费的时间总额
第8段:stStealtime虚拟机被hypervisor偷去的CPU时间(如果当前处于一个hypervisor下 vm,实际上hypervisor也是要消耗一部分CPU处理时间的)
④第四行和第五行:表示目前的物理内存和虚拟内存(Mem/Swap)的使用情况,要注意如果swap的使用很多的话表示系统物理内存不足
以上是关于Linux进程和任务计划管理的主要内容,如果未能解决你的问题,请参考以下文章