第十三天:进程、系统性能和计划任务

一、进程相关概念

 1、什么是进程 

Process: 运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位
进程ID(Process ID,PID)号码被用来标记各个进程
UID、GID、和SELinux语境决定对文件系统的存取和访问权限
通常从执行进程的用户来继承
存在生命周期
2、物理地址空间和虚拟地址空间
MMU:Memory Management Unit 负责虚拟地址转换为物理地址
  程序在访问一个内存地址指向的内存时,CPU不是直接把这个地址送到内存总线上,而是被送到MMU
  (Memory Management Unit),然后把这个内存地址映射到实际的物理内存地址上,然后通过总线再去
  访问内存,程序操作的地址称为虚拟内存地址
TLB:Translation Lookaside Buffer 翻译后备缓冲区,用于保存虚拟地址和物理地址映射关系的缓存

3、进程的基本状态

创建状态:进程在创建时需要申请一个空白PCB(process control block进程控制块),向其中填写
控制和管理进程的信息,完成资源分配。如果创建工作无法完成,比如资源无法满足,就无法被调
度运行,把此时进程所处状态称为创建状态
就绪状态:进程已准备好,已分配到所需资源,只要分配到CPU就能够立即运行
执行状态:进程处于就绪状态被调度后,进程进入执行状态
阻塞状态:正在执行的进程由于某些事件(I/O请求,申请缓存区失败)而暂时无法运行,进程受
到阻塞。在满足请求时进入就绪状态等待系统调用
终止状态:进程结束,或出现错误,或被系统终止,进入终止状态。无法再执行
 
4、LRU 算法
LRU:Least Recently Used 近期最少使用算法(喜新厌旧),释放内存
5、IPC 进程间通信
IPC: Inter Process Communication
同一主机:

6、优先级

系统优先级:0-139, 数字越小,优先级越高,各有140个运行队列和过期队列
实时优先级: 99-0   值最大优先级最高
nice值:-20到19,对应系统优先级100-139或

 7、进程分类

  

 二、进程工具

1、Linux系统状态的查看及管理工具: 

pstree -p       显示进程
ps            
pidof
pgrep
top
htop
glance
pmap
vmstat
dstat
kill
pkill
job
bg
fg
nohup
 
2、进程树 pstree 

  

 3、进程信息 ps

  

   

 4、查看进程信息 prtstat

  

 5、设置和调整进程优先级

  

 6、搜索进程

  按条件搜索进程
  ps 选项 | grep 'pattern' 灵活
  pgrep 按预定义的模式
  /sbin/pidof 按确切的程序名称查看pid 

 

 

7、负载查询 uptime

 

8、显示CPU相关统计 mpstat 

来自于sysstat包 

9、查看进程实时状态 top 和 htop

 (1)top

 

 

 

 (2)htop  

htop 命令是增强版的TOP命令,来自EPEL源,比top功能更强

 

 10、内存空间 free

 

 11、进程对应的内存映射 pmap

  

 12、虚拟内存信息 vmstat

 13、统计CPU和设备IO信息 iostat 

  iostat 可以提供更丰富的IO性能状态数据
  此工具由sysstat包提供 
  

 14、监视磁盘I/O iotop

来自于iotop包

  

   

 15、显示网络带宽使用情况 iftop

通过EPEL源的 iftop 包
16、查看网络实时吞吐量 nload 

 17、查看进程网络带宽的使用情况 nethogs

NetHogs是一个开源的命令行工具(类似于Linux的top命令),用来按进程或程序实时统计网络带宽使
用率。 
18、网络监视工具iptraf-ng
来自于iptraf-ng包,可以进网络进行监控,对终端窗口大小有要求
19、系统资源统计 dstat
dstat由pcp-system-tools包提供,但安装dstat包即可, 可用于代替 vmstat,iostat功能
格式:
dstat [-afv] [options..] [delay [count]] 

 20、综合监控工具 glances

 

 21、查看进程打开文件 lsof 

 22、 CentOS 8 新特性 cockpit 

 23、信号发送 kill

 

 

 24、作业管理

 Linux的作业控制

  前台作业:通过终端启动,且启动后一直占据终端
  后台作业:可通过终端启动,但启动后即转入后台运行(释放终端)
让作业运行于后台
  运行中的作业: Ctrl+z
  尚未启动的作业: COMMAND &
后台作业虽然被送往后台运行,但其依然与终端相关;退出终端,将关闭后台作业。如果希望送往后台
后,剥离与终端的关系
  nohup COMMAND &>/dev/null &
  screen;COMMAND
  tmux;COMMAND 

 25、并行运行

 

 

三、计划任务

 通过任务计划,可以让系统自动的按时间或周期性任务执行任务

注意: 学习本节需要实现邮件通知,学习内容前必须安装并启动邮件服务
未来的某时间点执行一次任务
at
指定时间点,执行一次性任务
batch 系统自行选择空闲时间去执行此处指定的任务
周期性运行某任务
cron 
1、一次性任务 

 

 

 

2、周期性任务计划 cron

 3、系统cron计划任务 

 /etc/crontab 格式说明,详情参见 man 5 crontab
注释行以 # 开头

 4、用户计划任务

控制用户执行计划任务:
/etc/cron.{allow,deny} 

 

posted @ 2024-01-26 19:08  djyhello  阅读(16)  评论(0编辑  收藏  举报