Linux 进程和计划任务管理

一  内核功用

进程管理、内存管理、文件系统、网络功能、驱动程序、安全功能等

 1 程序

  • 是一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具

  • 用于描述进程要完成的功能,是控制进程执行的指令集

2 进程

运行中的程序的一个副本,是被载入内存的一个指令集合,是资源分配的单位,

进程是有生命周期的

centos6及之前由init串行启动管理进程

从centos7以后为systemd并行启动管理进程

进程ID(Process ID,PID)号码被用来标记各个进程

UID、GID语境决定对文件系统的存取和访问权限

  父子关系

       兄弟关系

非正常结束进程

死机   有僵尸进程,对系统而言,会占用内存,对内存是非常大的负担,解决之道重启或杀死程序

3 进程创建

  • init:第一个进程,从 CentOS7 以后为systemd

  • 都由其父进程创建,fork(),父子关系,CoW:Copy On Write 写实更新,有数据写入子进程需要新的内存空间

三 进程具有的特征

  • 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;

  • 并发性:任何进程都可以同其他进程一起并发执行;

  • 独立性:进程是系统进行资源分配和调度的一个独立单位;

  • 结构性:进程由程序、数据和进程控制块三部分组成。

进程的基本状态:

创建状态

就绪状态

执行状态

阻塞状态

终止状态

进程更多状态

运行态

就绪态

睡眠态

停止态

僵死态

协程:

是一种基于线程之上,但又比线程更加轻量级的存在,这种由程序员自己写程序来

协程的目的

协程的特点:

线程的切换由操作系统负责调度,协程由用户自己进行调度,因此减少了上下文切换,提高了效率。

协程的原理:

当出现IO阻塞的时候,由协程的调度器进行调度,通过将数据流立刻yield掉(主动让出),并且记录当前栈

进程与线程的区别

线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位
一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段、数据集、堆等)及一些进
程级的资源(如打开文件和信号),某进程内的线程在其它进程不可见
调度和切换:

线程上下文切换比进程上下文切换要快得多

总结

每开启一个进程会消耗相应的硬件资源(内存,cpu,磁盘i/o(读写),磁盘剩余) ;

内存不足,及时关闭没有用的进程;硬件资源不足要对进程进行清理

pstree 可以查看进程PID号(ps=process );yum install epel-release.noarch -y(会生成一个额外源 )


案例

如何确定一个程序多线程还是单线程?

要去/proc找到程序进程号 

prtstat 该程序的pid号,可以查看该进程的线程数量

grep -i threads /proc/pid号/status,可以查看该进程的线程数量

二 进程 使用 内存 的问题

进程状态

内存泄漏

内存溢出

内存不足  oom

JVW(虚拟机)

进程使用内存出现的问题原因以及解决办法

pmap  进程id         #可以显示该进程所有进程占用信息

进程的基本状态

创建

就绪

执行

阻塞

终止

状态之间转换六种情况

以下两种状态是不可能发生的:

进程更多的状态:

僵尸进程:

父进程退出 子进程没有退出 那么这些子进程就没有父进程来管理了, 就变成僵尸进程

子进程已经结束了,父进程没有意识到。解决之道:重启或父进程唤起

进程之间通讯

 同一主机:

pipe管道:单向传输

socket套接字文件

文件映射

共享内存

signal 信号

lock 对资源上锁

semaphore 信号量,一种计数器

不同主机:socket=IP和端口号

进程的优先级 os

  • 静态优先级:100-139

  • 进程默认启动时的nice值为0,优先级为120

  • 只有根用户才能降低nice值(提高优先性)

进程分类

   进程

   前台进程

按进程资源使用的分类

      cpu-Bound

       I/O -Bound

   操作系统分类

             协作式多任务

             抢占式多任务

进程类型:两者可相互转化

  •         守护进程
  •          前台进程

三 进程管理相关命令:主要是指进程的关闭与重启

系统中可以识别的信号较多,可以使用命令"kill -l"或"man 7 signal"

要重启 apache 服务,一般使用命令"service httpd restart"重启 apache的程序。systemctl httpd start

  ps 

  process state ,  Linux系统各进程的相关信息均保存在/proc/数字 目录/status 下的文件中

查看静态的进程统计信息

"ps aux"   可以查看系统中所有的进程;默认按pid号排名

  • "ps -le"     可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;

  • ps -l       只能看到当前 Shell 产生的进程

常用选项

  • a:显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有        的进程信息。

  • u:使用以用户为主的格式输出进程信息。

  • x:显示当前用户在所有终端下的进程信息。

  • -e:显示系统内的所有进程信息。

  • -l:使用长(Long)格式显示进程信息。

  • -f:使用完整的(Full)格式显示进程信

  • k--sort 属性 对属性排序,属性前加 - 表示倒序 ps aux k -%cpu

  • o    属性… 选项显示定制的信息 pid、cmd、%cpu、%mem不能和u一起用

找到CPU利用最高的进程或者按cpu利用率倒序排列

找到内存mem占用最高的进程,或者按占用内存最多倒序排列

pid进程的ID字段说明

%cpu

%mem

VSZ

TTY

tty7

STAT

ps aux #如果看到STAT为Z,表示为僵尸态。

ps -elf   输出信息

prtstat  查看进程信息

top:

查看动态的进程排名信息=win的任务管理器

  • -d 秒数:指定 top 命令每隔几秒更新。默认是 3 秒;

  • -b:使用批处理模式输出。一般和"-n"选项合用,用于把 top 命令重定向到文件中;

  • -n 次数:指定 top 命令执行的次数。一般和"-"选项合用;

  • -p 进程PID:仅查看指定 ID 的进程;

  • -s:使 top 命令在安全模式中运行,避免在交互模式中出现错误;

  • -u 用户名:只监听某个用户的进程;

top 命令的显示窗口中,还可以使用如下按键,进行一下交互操作

?或h

c

M

N

T

k

r

q

首部信息显示/隐藏

top 命令的输出内容是动态的,默认每隔 3 秒刷新一次。命令的输出主要分为两部分:

  1. 第一部分是前五行,显示的是整个系统的资源使用状况,我们就是通过这些输出来判断服务器的资源使用状态的;

  2. 第二部分从第六行开始,显示的是系统中进程的信息

第一部分

 top - 10:06:37 up 5:36, 3 users, load average:    0.00, 0.01, 0.05

Tasks:    204 total, 1 running, 202 sleeping, 1 stopped, 0 zombie

%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

KiB Mem :    1867048 total, 74348 free, 755112 used, 1037588

buff/cache KiB Swap:     4194300 total, 4191856 free, 2444 used. 878688 avail Mem

第一行为任务队列信息,具体内容如表

第二行为进程信息,具体内容

第五行为交换分区(swap)信息

第三行为 CPU 信息,具体内容

第四行为物理内存信息,具体内容

缓冲(buffer)和缓存(cache)的区别:

缓存    用来加速数据从硬盘中"读取"的,

缓冲    用来加速数据"写入"硬盘的。

第二部分

top 命令的第二部分输出,主要是系统进程信息,各个字段的含义如下:

pgrep

查看指定的进程

  • -U 指定用户   查看指定用户为root的进程pid

  • -l: 显示进程名    显示以log为名的进程pid

  • -a: 显示完整格式的进程名

  • -P pid: 显示指定进程的子进程

pidof  

已知程序名不知道pid号

pstree: 

以树形结构列出进程信息

-a

-p

-T

-u

-H pid号

lsof    

“list opened files”的缩写,就是列举系统中已经被打开的文件

-c

+d

-u

-p  pid号

i    端口

查询系统中所有进程调用的文件

vmstat

是 Virtual Meomory Statistics(虚拟内存统计)的缩写,可用来监控 CPU 使用、进程状态、内存使用、虚拟内存使用、硬盘输入/输出状态等信息

r

b

swpd

cache

free

             查看系统内存占用情况

            free  -h      以易读方式显示(人性化=万能指令)


            free  -m     以兆

                     -g      以吉

                     -k      以千字节

                    -b      以字节

iostat   

性能状态监控数据       此工具由sysstat包提供

 -c      只显示CPU行
-d       显示设备〈磁盘)使用状态
-k        以千字节为为单位显示输出
-t         在输出中包括时间戳


-x        在输出中包括扩展的磁盘指标

iostat 1 -d /dev/sda        #dev/sda硬盘  

iotop:监视磁盘I/O活动,

 iftop -ni ens33        #网络流量

crontab

设置周期计划

crontab  -e    编辑计划任务     每天8:30开启sshd服务

crontab  -l     查看计划任务

crontab  -r     删除计划任务

crontab  -u    XXX   用来设定某个用户的crontab服务

crontab  -i   在删除用户的crontab文件时,给确认提示
 

*                    指定分钟

**                   指定小时

***                  指定月份的某一天

****                  指定月份

*****                 指定一星期的某一天

*                   表示该范围的任意时间

,                表示间隔的多个不连续的时间点

-                  表示一个连续的时间范围

/                   间隔的时间频率,代表每隔多久执行一次

格式:  *****   绝对路径

第一个*哪一分钟    0-59

第二个*哪一个小时 0-23

第三个*哪一天      1-31

第四个*哪一个月  1-12

第五个*星期几     0-7  07都代表星期天

which  命令   查看绝对路径

案例

周一到周五每天17:00      

0  17   *   *   1-5

每周一、三、五的8点30分

30  8  *   *  1,3,5

8点到18点之间每2小时

0   8-18/2  *   *   *

每3天

0  *  */3  *  *     

command        指定要执行的命令或脚本

 

uptime

显示系统运行时间以及平均负载情况

mpstat

一秒一次看三次

用于显示所有cpu的性能统计

dstat 

pmap

显示进程内存映射信息     pmap   选项   进程的pid号

-x

-d

-q

-p

-x

-h

-L

dd if=/dev/zero of=/dev/null

kill  

结束正在运行的进程  kill    信号    pid号

kill-i

pkill  

用于根据进程名称终止进程          pkill  信号  进程号

-U

-t

-u

-t

-l

-a

-p

killall

终止指定名称的进程

-i    

-e

-g

-I

at    

atq 

查看任务列表

 atrm 

任务序列号               #删除任务

五大性能

查看cpu内存:top  w  vmstat

查看内存的命令:top  free  vmstat

查看硬盘分区:lsblk

查看硬盘剩余:df

硬盘读写性能:vmstat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/609377.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1877_SHA512校验的使用

全部学习汇总: GreyZhang/toolbox: 常用的工具使用查询,非教程,仅作为自我参考! (github.com) 之前下载很多软件,尤其是开源软件的文件包的时候通常会看到一个校验文件。之前下载的时候我一般都是直接忽略,…

41-随机数.random(),ceil,floor,abs,比较两者或多者为较大值或较小值,round,找数组和对象的随机数

JavaScript数值操作,内置对象有:Math,Date,Array,String 1.Math内置对象 1.1向上取整ceil // 向上取整 ceil //有小数部分小数部分不要,整数部分1console.log(Math.ceil(3.14)); 1…

sqlalchemy expire_all 方法详解,强制刷新会话缓存

在 SQLAlchemy 中,expire_all() 方法是 Session 类的一个重要方法,用于使会话(Session)中所有当前加载的对象过期。这意味着下次访问任何已加载对象的属性时,SQLAlchemy 将从数据库中重新加载这些对象的最新状态。这是…

解释文本向量化的原理

文本向量化是将文本数据转换为数值向量的过程。在自然语言处理(NLP)中,文本向量化是一种常用的技术,用于将文本表示为计算机可以处理的形式。文本向量化的原理可以通过以下步骤解释: 1. 分词(Tokenization…

金和OA C6 CarCardInfo.aspx SQL注入漏洞复现

0x01 产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网+监管解决方案,为企事业单位提供组织协同OA系统开发平台,电子政务一体化平台,智慧电商平台等服务。 0x02 漏洞概述 金和OA C6 CarCardInfo.aspx接口处存在SQL注入漏洞,攻击者除了可以利用 SQL 注入漏洞…

SpringIOC之support模块EmbeddedValueResolutionSupport

博主介绍:✌全网粉丝5W,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验…

小梅哥Xilinx FPGA学习笔记22——ip核之FIFO

目录 一:章节说明 1.1 FIFO IP简介 1.2 FIFO Generato IP 核信号框图 1.3 实验任务 二:FIFO 写模块设计 2.1 简介 2.2 模块框图 2.3 模块端口与功能描述 2.4 写模块代码 三 FIFO 读模块设计 3.1 简介 3.2 模块框图 3.3 模块端口与功…

OpenAI ChatGPT-4开发笔记2024-03:Chat之Tool和Tool_Call(含前function call)

Updates on Function Calling were a major highlight at OpenAI DevDay. In another world,原来的function call都不再正常工作了,必须全部重写。 function和function call全部由tool和tool_choice取代。2023年11月之前关于function call的代码都准备翘翘。 干嘛…

进阶学习——Linux网络

目录 一、网络配置命令 1.ifconfig——IP地址 1.1ifconfig的基础用法 1.1.1ifconfig命令详解 1.2常用格式 1.3修改网卡名称 1.3.1临时修改 1.3.2永久修改 1.4临时修改网卡 1.4.1设置虚拟网卡 1.4.2延伸——ethtool 1.5永久修改网卡 1.6实验 —— 双网卡配置 1.…

【方法】如何修改Word文档密码?

我们在生活和工作中经常会使用到Word,有时候需要保护Word文档,还会设置密码,那如果后续想要修改密码,要怎么操作呢? 下面来看看Word文档常用的3种密码是如何修改的。 一、打开密码 想要修改“打开密码”&#xff0c…

2023-12-02 青少年软件编程(C语言)等级考试试卷(七级)解析

2023-12-02 青少年软件编程(C语言)等级考试试卷(七级)解析 一、编程题(共4题,共100分)T1. 迷宫 一天Extense在森林里探险的时候不小心走入了一个迷宫,迷宫可以看成是由n * n的格点组成,每个格点只有2种状态,.和#,前者表示可以通行后者表示不能通行。同时当Extense…

大学生如何当一个程序员——第三篇:热门专业学习之路7

区块链 1.区块链行业介绍2.Golang从入门到高级3.数据库操作和Golang Web4. Golang 实战项目5.密码学6. 共识算法7. Solidity8. 以太坊原理9.以太坊客户端10.去中心换拍卖系统DApp11.超级账本和DApp实战12.C编程快速入门13.比特币14.EOS 各位小伙伴想要博客相关资料的话关注公众…

Scikit-Learn线性回归(六)

Scikit-Learn线性回归六:Lasso回归 1、Lasso回归 1、Lasso回归 本文接上篇:Scikit-Learn线性回归(五)

基于Python爬虫的B站弹幕可视化

介绍 这是一个基于Python的B站弹幕可视化项目,主要使用了python django、requests、jieba等库。该项目实现了以下功能: 1. 爬取Bilibili视频弹幕数据:通过爬虫获取视频的标题、视频总时长、封面图,视频地址以及所有弹幕数据等。 …

Cesium笔记 初始化 原生Cesium

1、创建vue项目 vue create my_demo 2、下载Cesium 可以从官网下载&#xff0c;也可以使用node下载 npm install cesium 3、把node_modules文件夹中下载得Cesium&#xff0c;移出到public文件夹下 4、将Cesium.js 以及样式文件widgets.css在index.html中引用 <!DOCT…

“器官短缺”将被打破 基因编辑猪成为人类的“二师兄”

器官移植被称为生命之灯。但是&#xff0c;受制于传统观念及对人体器官捐献意义的不了解&#xff0c;人体器官捐献的数量&#xff0c;还远远达不到需求。目前&#xff0c;全国有近30万的患者在等待器官移植&#xff0c;但每年只有近一万的患者能真正得到器官移植&#xff0c;缺…

电脑怎么抠图?分享4款神奇的工具!

随着数字时代的来临&#xff0c;电脑抠图技术已经成为设计师、摄影师和广大创意人士必备的技能之一。那么&#xff0c;究竟有哪些工具可以帮助我们实现这一神奇的技术呢&#xff1f;今天&#xff0c;我们就来一探究竟&#xff01; 万能图片编辑器 它的抠图功能能够快速地识别图…

Python 二进制、八进制、十六进制表示法与十进制互转的方法

1、Python中二进制、八进制、十进制与十六进制的表示方法如下表&#xff1a; 名称描述示例二进制&#xff08;Binary&#xff09;以 0b 或 0B 开头&#xff0c;后面跟着由 0 和 1 组成的数字序列0b1010八进制&#xff08;Octal&#xff09;以 0o 或 0O 开头&#xff0c;后面跟…

JAVA实现文件上传至阿里云

注册阿里云账号后,开通好对象存储服务&#xff08;OSS&#xff09;&#xff0c;三个月试用 阿里云登录页 (aliyun.com) 目录 一.创建Bucket 二.获取AccessKey&#xff08;密钥&#xff09; 三.参考官方SDK文件&#xff0c;编写入门程序 1.复制阿里云OSS依赖&#xff0c;粘贴…

1042: 数列求和3 和 1057: 素数判定 和 1063: 最大公约与最小公倍

1042: 数列求和3 题目描述 求1-2/33/5-4/75/9-6/11...的前n项和&#xff0c;结果保留3位小数。 输入 输入正整数n(n>0)。 输出 输出一个实数&#xff0c;保留3位小数&#xff0c;单独占一行。 样例输入 5 样例输出 0.917 #include<stdio.h> int main(){in…