计算机网络/计算机科学与应用/系统/运维/开发

进程检测与控制

一、什么是进程?

进程由程序、数据和进程控制块组成,是正在执行的程序,也是资源调度的基本单位

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体

并占用一定的系统资源

程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合

进程与程序的区别:进程是动态的、程序是静态的

进程与线程的区别:进程是一个应用程序的可执行实例,进程内部又划分许多线程

线程是在进程内部,比进程更小且能独立运行的基本单元

进程在执行过程中拥有独立的内存单元,同属一个进程的多个线程共享进程拥有的全部资源


二、Linux进程管理工作

linux系统中进程使用数字标记,每个进程标记号称为pid,系统启动的第一个进程为systemd PID号为1,该进程是唯一一个由系统内核直接运行的进程

新进程可以用系统调用fork产生,也可以从已经存在的进程中派生,新进程是产生它的进程的子进程


进程的三种状态:

执行running :

就绪:当进程已分配到除cpu以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态

阻塞:正在执行的进程由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可以有多种,例如等待I/O完成、申请缓冲区不能满足、等待信件(信号)等

查看进程,判断linux是否健康

终止进程

进程优先级控制


三、进程管理命令

1、top查看cpu使用情况

查看服务器的进程占用资源

语法: top 动态显示

top - 23:56:39 up  6:32,  1 user,  load average: 0.06, 0.04, 0.05
Tasks: 160 total,   1 running, 159 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1862792 total,  1042164 free,   443760 used,   376868 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.  1240816 avail Mem 
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                          
   708 root      20   0  295380   5216   3968 S  0.3  0.3   0:39.16 vmtoolsd                                                                                         
  6569 root      20   0  162112   2324   1592 R  0.3  0.1   0:00.02 top                                                                                              
     1 root      20   0  125624   4156   2616 S  0.0  0.2   0:01.38 systemd                                                                                          
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.00


第一行:

top - 23:56:39 up  6:32,  1 user,  load average: 0.06, 0.04, 0.05

23:56:39 系统当前时间

up  6:32 系统的运行时间本机已经运行6小时32分

1 user 表示登录了2个用户

load average: 0.06, 0.04, 0.05 :系统在之前1分钟  5分钟  15分钟的平均负载。如果cpu是单核的,则这个数值超过1就是高负载

如果cpu是四核的,则这个数值超过4就是高负载

如何获取cpu的总核心数?

grep 'core id' /proc/cpuinfo | sort -u | wc -l

第二行:

Tasks: 160 total,   1 running, 159 sleeping,   0 stopped,   0 zombie

Tasks: 160 total 系统中的进程总数

1 running 正在运行的进程数

159 sleeping 睡眠的进程数

0 stopped  正在停止的进程数

0 zombie  僵尸进程数 如果不是0 则需要手工检查僵尸进程

第三行:

%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 st

%Cpu(s)  0.0 us 用户模式占用的cpu百分比

0.0 sy  系统模式占用的cpu百分比

0.0 ni 改变过优先级的用户进程占用的cpu百分比

100.0 id  空闲cpu占用的cpu百分比

0.0 wa  等待输入/输出的进程占用的cpu百分比

0.0 hi  硬中断请求服务占用的cpu百分比

0.0 si 软中断请求服务占用的cpu百分比

0.0 st st 意为虚拟时间百分比 就是当有虚拟机时,虚拟cpu等待实际的时间百分比

第四行:

KiB Mem :  1862792 total,  1039932 free,   444228 used,   378632 buff/cache

KiB Mem :  1862792 total  物理内存的总量

1039932 free    

444228 used  已经使用的物理内存数量

378632 buff/cache

真正剩余内存=free +buff/cache  真正使用内存 = used-buff/cache

第五行:

KiB Swap:  2097148 total,  2097148 free,        0 used.  1240308 avail Mem 


人生于世,就得有点兴致,闲暇之时,或乐游山水、或尽享食味、或寄情岁时,它让我们的生活变得充盈。

评论

^