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进程和任务计划管理的主要内容,如果未能解决你的问题,请参考以下文章

linux中进程和计划任务管理

Linux/Centos7系统管理之进程与计划任务管理

linux中的进程于计划任务管理

Linux——进程和计划任务管理

Linux的进程和计划任务管理

linux系统进程和计划任务管理