第六章 进程管理与系统监控

news2024/12/24 2:33:08

第六章 进程管理与系统监控

​ 一个具有较好的安全性和稳定性的系统是用户所需要的。无论进行何种操作和业务处理,用户都希望系统始终处于安全、稳定的状态。因此,即时地进行系统的进程管理和系统监控工作是保证系统安全、稳定的状态。

1.进程管理

1.1.什么是进程

​ 进程的概念最早出现在20世纪60年代,此时操作系统已经进入多道程序设计的时代。程序的并发执行不仅提高了系统的执行效率,也带来了资源利用率的极大提高。与此同时,并发程序的执行,在操作系统中引入了进程的概念。

​ 进程(process)通常被定义为可并发执行的、具有一定功能的程序段在给定数据集上的一次执行过程。简而言之,进程就是程序的一次运行过程。

​ 进程具有以下几个基本特征:

  • **动态性:**进程的实质是程序的此役执行过程,因此,动态性是进程最基本的特征。它由创建而产生,由调度而执行,由撤销而消亡。可见,进程具有一定的生命周期。而程序只是一组有序指令的集合,并存放于某种介质上,本身并无运动的含义,因此是静态的。
  • **并发性:**多个进程能在一段时间内同时运行。并发性是进程的重要特征。引入进程的目的也正是为了使用程序能和其他进程的程序并发执行。而程序(没有建立进程时)是不能作为一个独立的单位参加运行的。只有进程有资格向系统申请资源并获得系统提供的服务。
  • **独立性:**进程是一个能独立运行、独立分配资源和独立调度的基本单位,凡未建立进程的程序,都不能作为一个独立的单位参加运行。只有进程有资格向系统申请资源并获得系统提供的服务。
  • **异步性:**进程按各自独立的、不可预知的速度向前推进,或者说进程按异步方式运行。
  • **结构性:**为使进程能独立运行,应为之配置一个称为进程控制块(Process Contgrol Block,PCB)的数据结构。从结构上看,进程由程序段、数据段和PCB这3部分组成,UNIX把这3部分称为进程映象。

1.2.进程的基本状态及其转换

​ 进程在启动后不一定马上运行,因而进程存在很多种状态。从理论上讲,进程通常会在三种状态之间进行转换:运行态、就绪态、等待态(阻塞态):

  1. **运行态:**运行态指当前进程已分配到CPU,正在处理器上执行的状态,处于运行态进程的个数不能大于CPU的数目,在一般单CPU环境中,任何时刻处于运行态的进程只能有一个。
  2. **就绪态:**就绪态指进程已具备运行的条件,但因为其他进程正占用CPU,所以暂时不能运行而等待CPU的状态。一旦把CPU分给它,立即就可以运行,在操作系统上,处于运行态的进程可以有多个。
  3. **阻塞态:**阻塞态指进程因等待某种事件(如等待某一输入、输出操作完成,等待其他进程发来信号等)而暂时不能运行的状态。此时即使CPU处于空闲,阻塞态的进程也不能运行,系统中处于阻塞态的进程也可以是多个。当阻塞态进程所要等待的事件发生后,就会转入就绪态。

​ 具体到Linux系统中,进程所处的状态更为复杂多样,系统为每种状态都定义了一个符号,以便更好的标记:

  • **可运行状态R:**处于这种状态的进程,要么正在运行,要么正准备运行。也就是说,理论上处于运行态和就绪态的进程,在Linux中都被视为可运行状态。
  • **可中断的等待状态S:**这类进程处于等待状态,一旦达到某种条件就会变为就绪态。
  • **不可中断的状态D:**与”可中断的状态“的定义基本类似,唯一不同的是处于这个状态的进程对中断信号不做相应。比如某个进程正在从硬盘向内存中读入大量的数据时就会处于这种状态。
  • **僵死状态Z:**正常情况下子进程应该由父进程结束,并释放其所占的系统资源。当某个进程已经运行结束,但是它的父进程还没有释放系统资源时,这个进程就会处于僵死状态。
  • **暂停状态T:**此时的进程暂停于内存中,但不会被调度,等待接收某种特殊的处理。

1.3.进程控制块

​ 为了描述和控制进程的运行,系统为每个进程定义了一个数据结构,该数据结构被称为进程控制块(PCB)。所谓系统创建一个进程,就是由系统为某个程序设置一个PCB,用于对该进程进行控制和管理。进程任务完成后,由系统收回PCB,该进程便小王。系统根据PCB来告知相应进程的存在,因此PCB是进程存在的唯一标志

​ PCB中包含了进程的描述信息和控制信息。PCB的内同主要包括了描述信息、现场信息和控制及资源管理信息。

  • **描述信息:**这一部分信息量的多少由操作系统的设计者决定。主要包括进程标识号和家族关系。
    • 进程标识号:用于唯一标识一个进程,包括内部标识号和外部标识号。在所有的操作系统中,都为每个进程赋予一个唯一的数字标识号,它通常是一个进程的序号。因此,设置内部标识号主要是为了方便系统使用。外部标识号是由创建者提供的,通常是数字、字母所组成,往往供用户(进程)在房屋内该进程时使用。
    • 家族关系:用于说明本进程与其他家族成员之间的关系,例如父子进程。因此PCB中应该有相应的项描述家族关系。
  • **现场信息:**这一部分信息量的多少依赖于CPU的结构。主要包括现行状态、现场保留区、程序和数据地址。
    • 现行状态:说明进程的当前状态,作为调度程序分配处理机的依据。当进程处于阻塞状态时,要在PCB中说明阻塞的原因。
    • 现场保留区:用于保存进程由执行状态变为阻塞状态时的CPU现场信息,例如程序状态字、通用寄存器、指令计数器等的内容。
    • 程序和数据地址:记录该进程的程序和数据存放在内存或外存中的地址,用以把PCB与其程序和数据联系起来。
  • **控制及资源管理信息:**主要包括进程的优先级、互斥和同步机制、资源清单和链接字。
    • 进程优先级:标识进程使用CPU的优先级的整数。优先级高的进程可优先获得CPU。
    • 互斥和同步机制:实现进程间的互斥与同步的机制,例如信号量或锁。
    • 资源清单:列出进程所需资源及当前已获得的资源。
    • 链接字:也称为进程队列指针,它给出了本进程所在队列中的下一个进程的PCB首地址。

2.进程的启动

​ 启动进程的过程即启动程序或者命令的过程。通常,程序和命令保存在磁盘上,当在命令行中输入一个可执行程序的文件名或者命令并按Enter键后,Linux系统内核就把该程序或者命令的相关代码加载到内存中并开始执行。系统会为该程序或者命令创建一个或者多个相关的进程,以完成程序或者命令规定的任务。

​ 启动进程的方式分为前台方式和后台方式两种。

2.1.前台启动进程

​ 打开终端输入命令并按下Enter键,就以前台的方式启动了一个进程。例如,输入命令:

vi story

​ 该命令就以前台的方式启动了一个进程,该进程专门负责执行vi编辑器程序。在该进程还未执行完时,可按Ctrl+Z组合键将该进程暂时挂起,然后用ps命令查看该进程的有关信息。ps命令格式如下:

ps [选项]

​ 常用的选项有:

选项作用选项作用
-e显示所有进程a显示所有终端的所有进程
-f以全格式显示所有的进程u以面向用户的格式显示多有的进程
-r只显示正在运行的进程x显示所有不占用终端的进程
-o以用户定义的格式显示所有进程

ps命令默认只显示在本终端上运行的进程,除非指定了-e、a、x等选项。当没有指定显示格式时,ps命令采用默认格式,分PID、TTY、TIME、CMD4列显示,各列的含义如下:

含义
PID进程标识号
TTY进程对应的终端,"?"标识该进程不占用终端
TIME进程累计使用的CPU时间
CMD进程执行的命令名

指定-f选项时,采用全格式,分UID、PID、PPID、C、STIME、TTY、TIME、CMD8列显示进程。UID、PPID、C、STIME的含义如下:

含义含义
UID进程属主的用户名C进程最近使用的CPU时间
PPID父进程的标识号STIME进程开始时间

指定u选项时,采用用户格式,分USER、PID、%CPU、%MEN、VSC、RSS、TTY、STAT、START、TIME、COMMAND11列显示进程,其中几列的含义如下:

含义
USER同UID
%CPU进程占用CPU的时间与进程总运行时间之比
%MEN进程占用内存与总内存之比
VSZ进程占用虚拟内存的大小,以KB为单位
RSS进程占用实际内存大小,以KB为单位
STAT进程当前状态,用字符表示。R为执行态,S为睡眠态,D为不可中断睡眠态,T为暂停态,Z为僵死态
START同STIME
COMMAND同CMD

2.2.以后台方式启动进程

​ 在终端以后台方式启动进程,需要在执行的命令后面添加&符号

vim song&

​ 此时,执行jobs命令还可以查看当前终端的后台进程:

3.终止进程

​ 终止进程是系统管理员协调系统资源利用率的有效手段。当某个进程已经僵死或占用大量CPU时,就需要终止该进程。

​ 要终止该进程有以下两种方法。

3.1.Ctrl+C组合键

Ctrl+C可以终止一个前台执行的进程。如果想要终止后台执行态的进程,可以现使用fg命令将该进程调至前台,再使用Ctrl+C组合键终止它。

# 在1号终端执行
nohup nc -lp 8000 &									# 在后台监听8000端口
# 在2号终端执行
netstat -antp | grep :8000							# 查看8000终端的进程PID
ps -ef | grep PID号									
kill PID号											# 杀死进程
netstat -antp | grep :8000							# 再次查询这个进程已经没有

3.2.kill命令

kill命令的格式为:

kill [-信号] PID

​ kill命令通过向进程发出终止信号使其退出运行,kill发出的信号可以有多种,每个信号都有一个编号,其中默认使用的是15编号SIGTERM。若进程已经无法响应终止信号,那么可以发出9信号SIGKILL,强行将其终止,此时就需要"-9"选项。

​ 例如:我们开启一个vim进程并将其挂载至后台,由于在没有正常保存退出的情况下,vim进程是不允许被随意结束的,所以此时不加任何选项的kill命令是无法将vim进程终止的。

vim test.txt										# 编辑末行模式下不保存按Ctrl+Z将进程转入后台
jobs -l												# 查看后台进程
kill  PID号											# 单纯用kill命令无法结束
jobs -l												# 进程仍然挂起
kill -9 PID号										# 强制杀死进程
jobs -l

4.进程的调度

​ 在Linux系统总,多个进程可以并发执行。但如果系统中并发执行的进程数量过多,会造成系统的整体性能下降。因此,用户可以根据一定的原则,对系统中的进程进行调度,例如终止进程、挂起进程、改变进程优先级等。

4.1.改变进程的优先级

​ 在Linux系统中,每个进程都有特定的优先级。系统在位进程分配CPU等资源时,是通过优先级来进行判断的。优先级高的进程可以优先执行。但是通过命令来改变某些进程的优先级。

  • ps命令:在终端下输入ps -l命令可以查看用户进程的优先级:

​ 上图中,PRI和NI两列是与进程优先级有关的信息。PRI表示进程优先级,由操作系统动态计算,是进程的实际优先级。NI表示进程的请求优先级,它由进程拥有者或超级管理员进程设置,NI会影响到进程的实际优先级。

  • nice命令:在启动进程是指定进程的请求优先级,语法格式如下:
nice [选项] 命令

​ 常用选项是-n,n值表示请求优先级,n的取值范围为-20~19。n值越小,请求优先级越高。默认请求优先级为10。

​ 默认情况下,只有root用户才能提高进程的请求优先级,普通用户只能降低进程的请求优先级。

nice -15 vi&
ps -l

  • renice命令:在进程执行时改变请求优先级,语法格式如下:
renice [+/-n] [-g 命令名...] [-p 进程标识号] [-u 进程所有者]
ps -l
renice +10 -p 32621
ps -l

4.2.挂起和激活进程

​ 一个处于执行状态的进程被挂起时,会被系统自动转到后台,处于暂停状态;在合适的时候再被激活,恢复执行状态。

​ 要挂起当前正在运行的前台进程,可通过Ctrl+Z组合键来实现。要激活被挂起的进程,可以通过采用两种方式:fg命令和bg命令。

  • **fg命令:**使被挂起的进程返回前台运行,语法格式如下:
fg [参数]

​ 参数为数字n,代表进程的序列号。

​ **示例:**在前台启动vi编辑器进程,创建文档时,在命令模式下,按下Ctrl+Z组合键,挂起该进程,再使用fg命令记过该进程,继续编写文档,最终退出vi

  • **bg命令:**激活被挂起的进程,使之再后台运行,语法格式如下:
bg [参数]

​ 参数为数字n,代表进程的序列号。

​ **示例:**使用find命令启动一个前台执行的进程,查找文件名为passwd的文件。在find命令执行期间(即还未找到passwd文件时),按下Ctrl+Z组合键,挂起该进程,系统将其调度至后台,并显示:

​ 然后再启动另一个前台执行的进程—vi编辑器。在命令模式下按Ctrl+Z组合键,挂起该进程。

​ 数字5标识当前系统中有5个被挂起的进程,均在后台。

​ 接着再使用bg命令,将find命令和vi命令进程激活,并转至后台运行:

bg 4
bg 5

4.3.进程的监视

​ 监视进程,即了解当前系统中进程的运行情况,例如,哪些进程正在运行,哪些进程已经结束,是否有僵死进程,进程占用资源的情况,等等。这些信息对系统的高校运行具有重要的意义。

​ 通过top命令可以监控系统的各种资源(包括内存、CPU)的利用率。该命令会定期更新显示内容,默认根据CPU的负载大小进行排序。top命令时Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用情况,类似于Windows中的任务管理器。其语法格式如下:

top [-选项]

​ 常用选项如下:

选项作用
c显示整个命令行
d指定没两次屏幕刷新之间的时间间隔。默认3s刷新一次
i不显示任何闲置或僵死的进程
n指定监控信息每秒的更新次数
p进程标识号列表
s使top民老公再安全模式下运行
S使用累计模式

​ 执行top命令后,结果会不断更新。如果想要终止该命令的执行,可以按q退出;如果想看到以内存利用率排序的显示,可以按m键;如果想看到以执行时间排序的显示,可以按t键。top命令交互按键及作用:

按键作用
h或者?显示帮助画面,给出一些简短的命令总结说明
k终止一个进程。系统将提示用户输入要终止的进程的PID,以及要发送给该进程的信号。一般的终止进程可以使用信号15;如果进程不能正常结束,就是用信号9强制结束该进程。默认值是信号15。在安全模式下此命令被屏蔽
i忽略/显示闲置和僵死进程。这是一个开关式命令
q退出程序
r重新安排一个进程的优先级。系统提示用户输入需要改变的进程的PID以及需要设置的进程的优先级。输入正值将使优先级降低,反之则使优先级提高。默认值是10。
S切换到累计模式
s改变两次刷新之间的延迟时间。系统将提示用户输入新的时间,单位是秒。如果有小数,就换算成毫秒。输入0则系统将不断刷新,默认值是5s.需要注意的是,如果设置的值太小,很可能会引起不断刷新,从而根本来不及看清显示的信息,而且系统负载也会大大增加
f/F从当前显示中添加或删除项目
o/O改变显示项目的顺序
l切换显示平均负载和启动时间信息
m切换显示内存信息
t切换显示进程和CPU状态信息
c切换显示命令名称和完整命令行
M按占用内存大小排序
P按占用CPU百分比排序
T按时间/累计时间排序
W将当前设置写入~/.toprc文件,这是修改top配置文件的推荐方法

5.系统日志

​ 日志文件(log file)是记录Linux系统运行情况及详细信息的文件。系统运行过程中的错误情况或问题都会被日志文件记录下来,例如用户登录以及其他安全相关的问题。系统日志文件为管理员用户了解系统状态,跟踪系统使用情况等提供了可靠的依据。

5.1.常用的日志文件

​ 日志文件都在/var/log目录下,通过ls命令可以查看该目录下的日志文件都有哪些:

在这里插入图片描述

​ 用户可以使用文本编辑器打开某个日志文件并查看其内容。日志文件通常详细记录了程序的执行状态、时间、日期、主机等信息。通过日志文件可以获得系统运行的详细信息。

  • **日志文件类型:**Ubuntu系统在/var/log/目录下保存的日志文件很丰富,以方便系统在出现错误的时候查询相应的日志,如下表:
日志文件和子目录说明
/var/log/alternatives.log更新替代信息都记录在这个文件中
/var/log/apport.log应用程序崩溃记录(没有记录则没有该文件)
/var/log/apt用apt-get安装卸载软件的信息
/var/log/auth.log登录认证日志
/var/log/boot.log包含系统启动信息的日志
/var/log/btmp巨鹿所有失败启动信息
/var/log/Consolekit记录控制台信息
/var/log/cpus设计所有打印信息的日志
/var/log/dist-upgrade记录dist-upgrade这种更新方式的信息
/var/log/dmesg包含内核缓冲信息。在系统启动时,显示屏幕上与硬件有关的信息
/var/log/dpkg.log包括安装或用dpkg命令清除软件包的日志
/var/log/faillog包含用户登录失败信息。错误登录命令也会记录在本文件中
/var/log/fontconfig.log与字体配置有关的日志文件
/var/log/fsck文件系统日志文件
/var/log/kern.log记录内核产生的日志,有助于在定制内核时解决问题
/var/log/lastlog记录所有用户的最近信息。这是一个二进制文件,因此需要用lastlog命令查看其内容
/var/log/mail/这个子目录包含右键服务器的额外信息
/var/log/samba/这个子目录包含samba存储信息
/var/log/wtmp记录每个用户详细的登录、注册等信息。使用wtmp命令可以发现谁追赠在登录系统,谁正在使用命令显示这个文件或信息等操作
/var/log/xorg.*.log来自*(如0、1)的日志信息

5.2.常用的日志文件

  • /varlog/dmesg文件:这个日志文件记录了与启动Ubuntu有关的引导信息,包含内核缓冲信息。在系统启动时,显示屏幕上与硬件有关的信息。通过查看/var/log/dmesg文件,可以获知Linux系统能够检测出的硬件等信息。可以通过使用Gedit打开该文件,也可以通过在终端输入命令dmesg命令打开它:

  • /var/log/wtmp文件:这是一个二进制文件,记录每个用户的登录次数和持续时间等信息。该文件记录了每个用户登录、注销及系统的启动、停机的时间。因此,随着系统正常运行时间的推移,该文件的大小也会越来越大,该日志文件增大的速度取决于系统用户登录的次数。该日志文件可以用来查看用户的登录记录。我们可以使用文本编辑器或last命令来打开该文件:
last [-adRx] [-f] [-n] [用户名] [终端号]
选项作用
-a把登录系统时的主机名或IP地址显示在最后一行
-d将IP地址转换成主机名
-f指定记录文件
-n设置用户名的显示列数
-R不显示登录系统的主机名或IP地址
-x显示系统关机、重开机以及执行等级的改变等信息

6.系统监视器

​ Linux操作系统是一个典型的多用户、多终端系统,系统可能同时拥有多个用户,每个用户都有可能同时执行多个程序,而每个程序有可能启动多个进程。因此,从宏观和系统整体的角度出发,Linux系统资源将会分配给许许多多的进程使用。如果某些进程占用了大量的系统资源,就会造成系统负载过重、系统资源供不应求的局面。因此,系统管理员应该实时关注监控系统状态,了解系统资源的消耗情况,锁定消耗CPU资源最多的进程,以确保系统时刻处于较好的运行状态,保持较好的整体性能。

​ 在Ubuntu系统中有两种方式可以启动系统监视器:

  • 方法1:从桌面左下角找到应用程序图标,再找到系统监视器图标,或在搜索中输入"system-monitor":

  • 方法2:在终端中输入命令:
gnamo-system-monitor

​ 系统监视器窗口包含“进程”、“资源”、“文件系统”的标签页,其中“进程”标签页中显示进程的名称、用户、CPU占用率、进程ID、所占内存大小等信息。选中进程,鼠标右键可以改变进程的优先级、停止、启动等操作。

​ 在“资源”选项卡中,可以查看CPU历史、内存和交换历史、网络历史等情况;在“文件系统”选项卡中,可以查看设备及其对应的目录、相应文件系统的类型、磁盘空间总计、可用磁盘空间的大小、易用磁盘空间的大小和空闲磁盘空间的大小等信息。

7.查看内存状况

​ 定期查看内存使用状况可以较好的掌握系统的运行情况。用户可以通过使用free命令查看系统物理内存和交换分区的大小,以及已使用的、空闲的、共享的内存大小和缓存、高速缓存的大小等信息:

​ 上述数据以MB为单位显示内存状况。

8.文件系统监控

​ 对文件系统进行监控是进行系统监控的重要组成部分。用户可以通过df命令查看系统磁盘空间状况:

​ 默认情况下,该工具以KB为单位显示分区的大小。如果要使系统以MB或GB为单位显示,可以使用df -h

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

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

相关文章

C++项目实战——基于多设计模式下的同步异步日志系统-⑥-日志等级类与日志消息类设计

文章目录 专栏导读日志等级类设计日志等级划分to_string函数设计日志等级类整理 日志消息类设计 专栏导读 🌸作者简介:花想云 ,在读本科生一枚,C/C领域新星创作者,新星计划导师,阿里云专家博主,…

第4篇 vue的 ECMAScript 6的学习

一 ECMAScript 6 1.1 ECMAScript 6 ECMAScript 和 JavaScript 的关系是,前者是后者的规格,后者是前者的一种实现(另外的 ECMAScript 方言还有 Jscript 和 ActionScript)。 因此,ES6 既是一个历史名词,也…

java+ssm+mysql高校图书管理系统

项目介绍: 本系统为基于jspssmmysql的高校图书管理系统,包含管理员、学生角色,功能如下: 管理员(高级管理和普通管理):用户管理(管理员和学生管理);图书管理…

ps制作gif动图

最后存储就可以了

问道管理:历史市净率在哪看?

市净率是评价一家企业股票价格是否合理的一项重要指标,并且也能够反映企业的财务状况。前史市净率则是指某家企业在曩昔一段时间内(比方一年或三年)的市净率平均值。那么,前史市净率在哪里能够查询呢?本文将从多个视点…

华为OD机试 - 一种字符串压缩表示的解压(Java 2022 Q4 100分)

目录 专栏导读一、题目描述二、输入描述三、输出描述四、解题思路1、题意2、根据题意,不合法方式如下:3、解题思路 五、Java算法源码六、效果展示1、输入2、输出 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为O…

【CSS系列】writing-mode —— 文字方向(水平/垂直;左右/右左)

文章目录 一、引子二、writing-mode1.语法horizontal-tb(默认:水平方向,文字 从左到右,行 从上到下)vertical-rl(垂直方向,文字 从上到下,行 从右到左)vertical-lr&#…

Go基础16-defer的运作机制及常见用法

defer的运作离不开函数,这至少有两层含义: ● 在Go中,只有在函数和方法内部才能使用defer; ● defer关键字后面只能接函数或方法,这些函数被称为deferred函数。defer将它们注册到其所在goroutine用于存放deferred函数…

IAM、EIAM、CIAM、RAM、IDaaS 都是什么?

后端程序员在做 ToB 产品或者后台系统时,都不可避免的会遇到账号系统、登录系统、权限系统、日志系统等这些核心功能。这些功能一般都是以 SSO 系统、RBAC 权限管理系统等方式命名,但这些系统合起来有一个专有名词:IAM。 IAM IAM 是 Identi…

视频直播点播平台EasyDSS流媒体服务器按时间调用录像,提示数据查询错误是什么原因?

EasyDSS能实现视频流媒体的上传、转码、存储、录像、推拉流、直播、点播等功能,具备超低延迟、超高画质、超大并发访问量等特点,可应用在多样化的场景中,如:在线课堂、教育直播、校园活动直播、企业培训、游戏直播等。为了便于用户…

【面试经典150 | 双指针】两数之和

文章目录 写在前面Tag题目来源题目解读解题思路方法一:暴力枚举方法二:哈希表方法三:二分法方法四:双指针 知识回顾写在最后 写在前面 本专栏专注于分析与讲解【面试经典150】算法,两到三天更新一篇文章,欢…

[NLP]LLM--使用LLama2进行离线推理

一 模型下载 二 模型推理 本文基于Chinese-LLaMA-Alpaca-2项目代码介绍,使用原生的llama2-hf 克隆好了Chinese-LLaMA-Alpaca-2 项目之后,基于GPU的部署非常简单。下载完成以后的模型参数(Hugging Face 格式)如下: 简单说明一下各个文件的作…

【精品】git commit 代码规范

规范 格式: type(scope) : subject type(必须) : commit 的类别,只允许使用下面几个标识: feat : 新功能fix : 修复bugdocs : 文档改变style : 代码格式改变refactor : 某个已有功能重构perf : 性能优化test : 增加测…

6.2.2 【MySQL】InnoDB中的索引方案

上边之所以称为一个简易的索引方案,是因为我们为了在根据主键值进行查找时使用二分法快速定位具体的目录项而假设所有目录项都可以在物理存储器上连续存储,但是这样做有几个问题: InnoDB 是使用页来作为管理存储空间的基本单位,也…

未来3-5年,前端低代码化,具体往哪个方向发展更好就业?

最近发现一个有趣的现象,好像是要紧追AIGC的速度一样,我的朋友圈也是越来越多人每天抒发关于“前端开发新方向”的见解。 且其中不仅是关于AI的讨论,还把不少资深人士把低代码也拉出来溜了一圈,不仅是开发人员,产品经理…

构建企业分支网络

构建企业分支网络 目录 1.1 项目背景 1.2 项目拓扑 1.3 项目需求 1.4 设备选型 1.5 技术选型 1.6 地址规划 1.6.1 交换设备地址规划表 1.6.2 路由设备地址规划表 1.6.3 ISP设备地址规划表 1.6.4 终端地址规划表 1.6.4.1 VLAN 规划 1.7 VLAN 规划 1.8 项目实施 1.…

git撤回 不小心 commit 进去的文件

我时候 我们可能讲一下不想提交的文件 不小心commit了进去 我们可以通过 git reset HEAD~来撤回刚才的添加记录

iNeuOS工业互联网操作系统V5,视图建模(WEB组态)升级

针对工业来讲,特殊是流程行业,视图建模(Web组态)是必不可少应用场景,因为有很多工序要直观的展示工艺流程图。 对于一个工厂,少则几十张工艺流程图,多则上百张工艺流程图,还得支持灵…

被逼出来的自主可控,从华为自研看国产 IDE 的未来和商业模式

华为的自研 IDE 之路 我所在的部门“华为云 PaaS 服务产品部”在软件开发工具领域肩负着两大使命:一是为华为内部各产业开发者提供软件开发工具,提升开发效率;二是以华为云为承载平台,将华为内部优秀的软件工程工具和研发实践服务…

优维产品最佳实践:流水线的编排

前言:在前面的内容中,我们已经深入探讨了流水线的设计思路以及“一次构建多次部署”的核心概念。现在,让我们将这些理论知识付诸实践,在 EasyOps 平台上开始编排流水线。 本期优维EasyOps产品使用最佳实践,我们将为您…