Day25-进程管理核心知识1

news2024/11/15 4:38:02

Day25-进程管理核心知识1

  • 1. CentOS7 软件包安装方式
    • 1.1 什么是源码包?
    • 1.2 为什么要源码包安装
    • 1.3 源码包如何获取
    • 1.4 编译安装源码包软件
  • 2. 源码编译示例 下面通过编译Nginx来深入了解下源码包编译的过程。
  • 3. Linux 系统进程介绍
    • 3.1 什么是进程?
    • 3.2 进程/守护进程和程序区别
    • 3.3 进程的工作流程
  • 4. Linux进程管理命令
    • 4.1 ps查看进程
    • 4.2 pstree:显示进程状态树
    • 4.3 pgrep:查找匹配条件的进程
    • 4.4 top:实时显示系统中各个进程的资源占用状况
    • 4.5 快捷键:

在这里插入图片描述

1. CentOS7 软件包安装方式

软件包分类安装方式优缺点
rpm 包软件开发商预先编译打包,安装简单、快速软件开发商预先编译打包,安装简单、快速软件版本可能偏低,安装路径固定好的。定制 rpm 包、官方找最新的 rpm 包。
源码包自己手动编译安装,安装复杂 https://blog.oldboyedu.com/autodeploy-rpm软件版本随意选,可定制安装路径,满足定制需求
二进制包解压即可使用,安装简单不能修改源码,软件包大

源码包管理实践

1.1 什么是源码包?

源码包指的是开发人员编写好的程序源代码,但并没有将其编译为一个能正常使用的工具或软件。

1.2 为什么要源码包安装

1)部分软件官网仅提供源码包,需要自行编译并安装。

2)部分软件在新版本有一些特性还没来得及制作成rpm包时,或者软件厂商自身没有这个功能,只能通过可以自行编译软件增加或使用其新特性。

3)源码包的优缺点:

优点:

1.可以自行修改源代码

2.可以定制需要的相关功能

3.新版软件优先更新源码(Python、Go,学开发做运维,差异化发展)

缺点:

1.相对yum安装软件会复杂很多

2.标准化实施困难,自动化运维复杂

1.3 源码包如何获取

常见的软件包都可以在官网获取源码包,比如Apache(并发能力3000-5000)、Nginx(10000-30000)、MySQL等等,阿里云、清华源可能也有

1.4 编译安装源码包软件

在这里插入图片描述

上述安装往往是C语言开发的软件。2013年以前,很多的系统服务级软件大多都是C语言开发

C语言优势:运行速度快。缺点:难学,开发速度慢。目前在互联网企业几乎绝迹

Python语言:开发效率高,用途广。解释语言,运行速度慢。

GO语言:开发效率高,用途逐渐广,编译速度快。替代C语言,主要是高并发场合

2. 源码编译示例 下面通过编译Nginx来深入了解下源码包编译的过程。

1.基础环境准备

[root@oldboy ~]# rpm -qa make gcc wget
make-3.82-24.el7.x86_64
gcc-4.8.5-44.el7.x86_64
wget-1.14-18.el7_6.1.x86_64

如果已装好,忽略下面步骤:

[root@node1 ~]# yum install gcc make wget -y #(Development Tools含有 gcc make)

2.下载源码包

[root@oldboy ~]# cd /usr/src/
[root@oldboy src]# wget -q http://nginx.org/download/nginx-1.20.1.tar.gz

3.解压源码包, 并进入相应目录

[root@oldboy src]# tar xf nginx-1.20.1.tar.gz
[root@oldboy src]# cd nginx-1.20.1/
[root@oldboy nginx-1.20.1]# 

4.配置相关的选项,并生成Makefile

[root@oldboy nginx-1.20.1]#  ./configure --prefix=/application/nginx-1.20.1

5.将Makefile文件编译可执行二进制程序

[root@oldboy nginx-1.20.1]#  make

6.将二进制文件拷贝至对应的目录中

[root@oldboy nginx-1.20.1]#  make install

7.启动测试

[root@oldboy nginx-1.20.1]# netstat -lntup|grep nginx
[root@oldboy nginx-1.20.1]# /application/nginx-1.20.1/sbin/nginx 
[root@oldboy nginx-1.20.1]# netstat -lntup|grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      74238/nginx: master
[root@oldboy nginx-1.20.1]# curl 127.0.0.1
[root@oldboy nginx-1.20.1]# /application/nginx-1.20.1/sbin/nginx -s stop
[root@oldboy nginx-1.20.1]# netstat -lntup|grep nginx

#epel源有nginx的,nginx官方更新

yum install nginx -y

特点:

1.安装复杂。

2.慢。

3.容易报错。

#报错解决方案:

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

[root@oldboy nginx-1.20.1]# yum install pcre-devel -y

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

[root@oldboy nginx-1.20.1]# yum install zlib-devel -y

3. Linux 系统进程介绍

3.1 什么是进程?

计算机应用软件或代码程序被执行,运行于内存中的时候,就称之为进程。

软件或程序运行成为进程后,系统会为其分配分配内存资源,并分配PID,文件描述符、网络端口、运行用户等资源。
在进程运行的过程中,系统会有各种指标来表示当前运行的状态。
进程是已启动的可执行程序的运行实例,进程有以下组成部分分配内存:

分配内存:分配内存地址空间。
安全属性:分配运行身份和权限。
进程代码:可fork一个或多个子进程或线程
进程状态:进程运行后存在多种状态。

3.2 进程/守护进程和程序区别

选项描述
进程(process)程序或者软件被运行起来后的产物,存在于内存中,运行结束就会消失
守护进程(daemon process)除了具备普通进程特点外,还为提供某种服务而持续运行,如:运行着的Linux sshd。
程序/代码(program/code)代码文件或应用软件文件,比如:ls命令,永久放在磁盘中,可以看得见实体文件,把程序或软件运行起来就是进程,持续运行着,就是守护进程。

3.3 进程的工作流程

在这里插入图片描述

在这里插入图片描述

进程工作流程描述
1.当程序运行的时候会产生父进程,并可能 fock 多个子进程。
2.当父进程接收到任务调度时,将任务交给派生的子进程处理,子进程会继承父进程属性。
3.子进程在处理任务时,父进程会进入等待状态中…
4.子进程处理任务完成后,会发出信号并执行退出,退出前会唤醒父进程来回收子进程的资源。
5.如果子进程在处理任务过程中异常退出终止,父进程就可能没有回收子进程的资源,导致子进程虽然运行实体已经消失,但仍然在内核中的进程表中占据记录(僵尸进程),长期下去会浪费系统资源。
6.如果子进程在处理任务过程中,父进程退出或意外终止,则子进程可能未退出,那么子进程就没有父进程来管理了,由系统的 system进程管理(孤儿进程)。
PS:每个进程都父进程的PPID,子进程则叫 PID。

程序运行时进程的状态关系:
父进程复制自己的地址空间创建新的子进程,子进程可以继承父进程(ppid)的环境变量
每个进程都有自己的唯一ID(PID)
进程是由 systemd 这个父进程派生出来的子进程
子进程在运行自己的程序代码的时候,父进程往往会进入到睡眠状态。
子进程完成程序代码发出退出信号请求,子进程已经关闭或丢弃了其资源环境,剩余的部分称之为僵停(僵尸 Zombie)父进程在子进程退出时收到信号会被唤醒,清理剩余的结构,然后继续执行其自己的程序代码。

4. Linux进程管理命令

4.1 ps查看进程

ps命令:
ps命令用于列出执行ps命令的那个时刻的进程快照,就像用手机给进程照了一张照片。
动态查看top
常用:
-e 显示所有进程※
-f 额外显示UID、PPID、C与STIME栏位※

常用命令:
ps -ef #简易查看进程,过滤进程的命令。

[root@oldboy ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 Jun02 ?        00:00:06 /usr/lib/systemd/systemd --system --des
root          2      0  0 Jun02 ?        00:00:00 [kthreadd]
root          4      2  0 Jun02 ?        00:00:00 [kworker/0:0H]
root          6      2  0 Jun02 ?        00:00:09 [ksoftirqd/0]
root          7      2  0 Jun02 ?        00:00:00 [migration/0]
root          8      2  0 Jun02 ?        00:00:00 [rcu_bh]

PID为1的初始进程,C7:systemd,C6:init

输出信息中各列的说明如下。

UID:进程被该UID所拥有,程序运行必须要有用户,一般是虚拟用户。
PID:进程的标识号;Process ID
PPID:进程的父进程的标识号;
C:CPU使用的资源百分比;
STIME:进程开始的时间;
TTY :该进程是在哪个终端机上面运作,若与终端机无关,则显示?,另外, tty1-tty6是本机上面的登入者进程,若为pts/0等,则表示为由网络连接进主机的进程;
TIME:进程所使用的总的CPU时间;
CMD:正在执行的命令行。

这里使用BSD语法格式显示每个进程信息。

 [root@oldboy ~]# ps aux  #***
 #<== BSD格式参数,使用a选项和x选项显示所有进程,使用u选项显示进程的用户信息。

[root@oldboy ~]# ps aux 
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1  46368  6700 ?        Ss   Jun02   0:06 systemd --system --deserialize 18
root          2  0.0  0.0      0     0 ?        S    Jun02   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   Jun02   0:00 [kworker/0:0H]

输出信息中各列的说明如下。

USER:该进程属于的用户;
PID :该进程的进程号;
%CPU:#该进程使用掉的CPU资源百分比;*****
%MEM:#该进程所占用的物理内存百分比;*****
VSZ :#(Virtual Size)进程占用的虚拟内存量 (单位Kb);*****
RSS :#该进程占用的物理内存大小 (单位Kb);*****
TTY :该进程是在哪个终端机上面运作的,若与终端机无关,则显示?,另外, tty1-tty6是本机上面登入者进程,若为pts/0等,表示为由网络连接进主机进程;
STAT:该进程目前的状态
START:该进程被触发启动的时间;
TIME :该进程实际使用 CPU 运作的时间;
COMMAND:该进程的实际命令,[ 方括号 ] 属于内核态的进程。 没有[ ]的是用户态进程。。

STAT:该进程目前的状态,主要的状态包括

 R :正在运行,或者是可被运行。
 S :正在中断睡眠中,可被某些信号(signal) 唤醒。
 D :不可中断睡眠。
 T :正在侦测或者是停止了。
 Z :已经终止,但是其父进程无法正常终止他,造成 zombie (疆尸) 进程的状态。
 + :前台进程。
 l :多线程进程。
 N :低优先级进程。
 < :高优先级进程。
 s :进程领导者。
 L : 已将页面锁定到内存中。

(1)AIX格式:ps -eo “%p %y %x %c”
语法说明:,-e是显示所有进程,-o可以自定义输出指定的字段,以逗号分隔,支持的字段见下面代码。

[root@oldboy ~]# ps -eo "%p %y %x %c"
   PID TTY          TIME COMMAND
     1 ?        00:00:06 systemd
     2 ?        00:00:00 kthreadd
     4 ?        00:00:00 kworker/0:0H
     6 ?        00:00:09 ksoftirqd/0
     7 ?        00:00:00 migration/0
     8 ?        00:00:00 rcu_bh

CODE NORMAL HEADER
代码 标准含义 命令行表头内容

%C     pcpu     %CPU
%G     group    GROUP
%P     ppid     PPID
%U     user     USER
%a     args     COMMAND
%c     comm     COMMAND
%g     rgroup   RGROUP
%n     nice     NI
%p     pid      PID 
%r     pgid     PGID
%t     etime    ELAPSED
%u     ruser    RUSER
%x     time     TIME
%y     tty      TTY
%z     vsz      VSZ

ps -eo "%p %C %z %c"
%p     pid      PID 
%C     pcpu     %CPU
%z     vsz      VSZ
%c     comm     COMMAND
[root@oldboy ~]# ps -eo "%p %C %z %c"
   PID %CPU    VSZ COMMAND
     1  0.0  46368 systemd
     2  0.0      0 kthreadd
     4  0.0      0 kworker/0:0H
     6  0.0      0 ksoftirqd/0

[root@oldboy ~]# ps aux|awk '{print $2"\t"$3"\t"$4"\t"$5"\t"$6}'
PID	%CPU	%MEM	VSZ	RSS
1	0.0	0.1	46368	6700
2	0.0	0.0	0	0
4	0.0	0.0	0	0
6	0.0	0.0	0	0
7	0.0	0.0	0	0

zabbix监控,每隔几分钟监控。

倒序排序

[root@oldboy ~]# ps -eo "%p %C %z %c" --sort -vsz|head
   PID %CPU    VSZ COMMAND
  1053  0.0 612376 polkitd
 20524  0.0 574284 tuned
  1080  0.0 474920 NetworkManager
 21554  0.0 228456 abrtd
 21581  0.0 225940 abrt-watch-log
 21299  0.0 218528 rsyslogd
 20759  0.0 199460 vmtoolsd
 20758  0.0 168304 VGAuthService
  1641  0.0 154848 sshd
ps -eo "%p %C %z %c" --sort vsz #升序

ps aux --sort vsz           #--sort 加上对应格式,可以进行排序  
ps aux --sort -vsz |head    #--sort后面加上 -(减号)表示逆序排序

查看某个进程在哪个CPU上运行

[root@oldboy ~]# ps -eo pid,args,psr
   PID COMMAND                     PSR
     1 /usr/lib/systemd/systemd --   0
     2 [kthreadd]                    0
     4 [kworker/0:0H]                0

[root@oldboy ~]# ps aux|awk '{print $2"\t"$3"\t"$4"\t"$5"\t"$6}'|sort -rn -k4|head
1053	0.0	0.3	612376	12292
20524	0.0	0.4	574284	17464
1080	0.0	0.2	474920	8928
21554	0.0	0.1	228456	5844
21581	0.0	0.1	225940	4904
21299	0.0	0.1	218528	6956
20759	0.0	0.1	199460	4856
20758	0.0	0.1	168304	5164
1641	0.0	0.1	154848	5556
13003	0.0	0.1	154692	5420

总结:
ps aux

a	显示与终端相关的所有进程,包含每个进程的完整路径※
u	显示进程的用户信息※
x	显示与终端无关的所有进程※

-u	显示指定用户相关的进程信息

ps -ef

-e	显示所有进程※
-f	额外显示UID、PPID、C与STIME栏位※

企业如何用?
查找占用 cpu mem 虚拟内存 更多的进程,
分析进程的问题,解决问题,把资源降下来。
如果发现没有异常,还无法降下来,就增加资源

维护服务器性能:CPU、内存、IO

4.2 pstree:显示进程状态树

【功能说明】

pstree命令以树形结构显示进程和进程之间的关系。

[root@oldboy ~]# pstree
systemd-+-NetworkManager---2*[{NetworkManager}]
        |-VGAuthService
        |-abrt-watch-log
        |-systemd-logind
        |-systemd-udevd
        |-tuned---4*[{tuned}]
        |-vmtoolsd---{vmtoolsd}
        `-vsftpd		
-a	显示启动每个进程对应的完整指令,包含启动进程的路径、参数等
-c	显示的进程中包含子进程和父进程
-h	对现在执行的程序进行特别标注
-n	根据进程PID号来排序输出,默认是以程序名称排序输出的
-p	显示进程的PID
-u	显示进程对应的用户名称
[root@oldboy ~]# pgrep crond
2496
[root@oldboy ~]# ps -c -p `pgrep crond`
   PID CLS PRI TTY          TIME CMD
  2496 TS   19 ?        00:00:00 crond

pstree -p 74537
pstree -a
pstree -c -p 74537
pstree -u nobody

4.3 pgrep:查找匹配条件的进程

【功能说明】pgrep命令可以查找匹配条件的进程号。
【语法格式】pgrep [选项] [匹配条件]
【选项说明】-u 显示指定用户的所有进程号

[root@oldboy ~]# pgrep crond
2496
[root@oldboy ~]# pstree -p 2496
crond(2496)
[root@oldboy ~]# pstree -p `pgrep crond`
crond(2496)
[root@oldboy ~]# pgrep -u nobody
74538

4.4 top:实时显示系统中各个进程的资源占用状况

【语法格式】top [选项]

参数选项 解释说明(带※的为重点)

-a	将进程按照使用内存排序
-b	以批处理模式显示进程信息,输出结果可以传递给其他程序或写入到文件中。
-c	显示进程的整个命令路径,而不是只显示命令名称
-d	指定每两次屏幕信息刷新之间的时间间隔(top -d 1)
-H	指定这个可以显示每个线程的情况,否则就是进程的总的状态
-i	不显示闲置或者僵死的进程信息
-n	top输出信息更新的次数,完成后将退出top命令
-p	显示指定的进程信息(top -p 进程号)

重点:top输出

top - 01:12:32 up 2 days, 2:47, 2 users, load average: 0.00, 0.01, 0.05

第一行:任务队列信息,同uptime命令的执行结果。
01:12:32 当前系统时间。
up 2 days, 2:47 系统已经运行了1天16小时36分。
2 users 当前有2个用户登录系统。
load average: 0.00, 0.01, 0.05 — load average 平均负载情况*
*后面的三个数分别是1分钟、5分钟、15分钟的平均负载情况。
【体现系统繁忙的重要简单的查看指标】

【load average 平均负载】

[root@oldboy etc]# w|head -1
 01:16:02 up 2 days,  2:51,  2 users,  load average: 0.00, 0.01, 0.05
[root@oldboy etc]# uptime
 01:16:07 up 2 days,  2:51,  2 users,  load average: 0.00, 0.01, 0.05

Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie

第二行,Tasks为任务(进程)。
从上面的信息可以看出,
系统现在共有105个进程,其中处于运行状态的有1个,
104个在休眠(sleep),stoped状态0个,zombie状态(僵死)的有0个。
STAT:该进程目前的状态,主要的状态包括
R :正在运行,或者是可被运行。
S :正在中断睡眠中,可被某些信号(signal) 唤醒。
D :不可中断睡眠。
T :正在侦测或者是停止了。
Z :已经终止,但是其父进程无法正常终止他,造成 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

第三行,CPU状态信息。
0.0% us (user)用户空间占用CPU的百分比(如:应用程序、执行命令)。*****
0.0% sy (system)内核空间占用CPU的百分比(如:内核进程、硬件磁盘操作)。*****
0.0% ni (nice)改变过优先级的进程占用CPU的百分比。

100.0% id (idle)空闲CPU百分比,数值越大,CPU越空闲。*****
0.0% wa (wait)IO等待占用CPU的百分比。*****

0.0% hi (hard Interrupts)硬中断(Hardware IRQ)占用CPU的百分比。
0.0% si 软中断(Software Interrupts)占用CPU的百分比。
0.0% st 虚拟机占用CPU的百分比。

KiB Mem : 4026136 total, 203768 free, 228476 used, 3593892 buff/cache

第四行,内存状态。
KiB Mem : 995684 total, 87984 free, 234516 used, 673184 buff/cache
内存:
4026136 total #内存一共多大
203768 free #可用内存,剩余内存
228476 used #已经使用的内存
3593892 buff/cache #系统缓存和缓冲占用内存空间

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

第五行,swap交换分区信息。
12097148 total 交换区总量。
0k used 使用的交换区总量。
2097148 free 空闲交换区总量。
3531892 avail Mem 可用内存大小
以上两行: cat /proc/meminfo或free -m获取。

4.5 快捷键:

l,t,m #显示/隐藏前5行的数据输出
模拟消耗负载,消耗CPU,消耗IO工具

stress - tool to impose load on and stress test systems
Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

stress --io 4 --timeout 100s

 PID   USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                     
 20759 root      20   0  199460   4856   3724 R  0.3  0.1   2:24.05 vmtoolsd                                                                    
 74646 root      20   0   58424   2112   1488 R  0.3  0.1   0:01.23 

从第七行开始,给出的是各进程(任务)的状态监控。

PID     进程id。
USER    进程所有者。
PR      进程优先级。
NI      nice值,负值表示高优先级,正值表示低优先级。
VIRT    #进程使用的虚拟内存总量,单位kb。*****
RES     #进程使用的、未被换出的物理内存大小,单位kb。*****
SHR     #共享内存大小,单位kb。*****
S       进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程。
%CPU    #上次更新到现在的CPU时间占用百分比。*****
%MEM    #进程使用的物理内存百分比。*****
TIME+   进程使用的CPU时间总计,单位1/100秒。
COMMAND 进程名称(命令名/命令行)。

top必会快捷键指令(老男孩抓重点思想)

1     #查看系统核心总数,  类似于 lscpu(CPUs) 
q	  #退出top
M	  #按内存使用百分比排序输出
P	  #按CPU使用百分比排序输出
R     #对已排序的列反转排序
###抓重点显示,有助于查看的指令。
x     #高亮显示排序的列
z     #以彩色信息展示
b	  #高亮显示处于R状态的进程
><  #改变排序的列,依然高亮显示。
#top熟悉了解的快捷键
h	  #查看帮助
l,t,m #显示/隐藏前5行的数据输出

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

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

相关文章

【深度学习】脑部MRI图像分割

案例4&#xff1a;脑部MRI图像分割 相关知识点&#xff1a;语义分割、医学图像处理&#xff08;skimage, medpy&#xff09;、可视化&#xff08;matplotlib&#xff09; 1 任务目标 1.1 任务简介 本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务&#xff0c…

【MySQL高级篇】06-MySQL架构篇

第01章:Linux下MySQL的安装与使用 1.1 安装前说明 1.1.1 Linux系统及工具的准备 1.1.2 查看是否安装过MySQL 1.1.3 MySQL的卸载 systemctl status mysqld.service #查看mysql服务启停状态 Windows下my.ini文件&#xff0c;在linux下对应为my.cnf 1.2 MySQL的Linux版安…

Docker的安装及MySQL的部署(CentOS版)

目录 1 前言 2 Docker安装步骤 2.1 卸载可能存在的旧版Docker 2.2 配置Docker的yum库 2.2.1 安装yum工具 2.2.2 配置Docker的yum源 2.3 安装Docker 2.4 启动和校验 2.5 配置镜像加速(使用阿里云) 2.5.1 进入控制台 2.5.2 进入容器镜像服务 2.5.3 获取指令并粘贴到…

【go从入门到精通】go环境安装和第一个经典程序

go下载和环境变量配置 下载地址 Go官网下载地址&#xff1a;https://golang.org/dl/All releases - The Go Programming Languagehttps://golang.org/dl/ 然后根据自己的系统环境来选择不同的安装包下载&#xff0c;下面我分别针对不同环境进行说明&#xff08;大家可以根据自…

【古剑杯】

[古剑山]unse方法一 考点&#xff1a;php反序列化、php伪协议 解题步骤&#xff1a; 打开题目界面 直接访问当前目录的test.php&#xff0c;没有返回结果&#xff0c;看到include函数&#xff0c;可以结合php伪协议读取出test.php的源码 解密后 <?php $test "…

1.2计算机体系结构与存储系统

1.计算机体系结构 计算机体系结构简单看看即可&#xff1b; CISC&#xff08;复杂指令集计算机&#xff09;和RISC&#xff08;精简指令集计算机&#xff09; 2.流水线技术 串行效率低&#xff0c;所以用到流水线技术&#xff0c;可以大大缩短执行时间&#xff1b; △t1、△…

docker-compose启动postgres数据库,实现主从备份

文章目录 1. 主库2. 从库3. 测试 1. 主库 创建pg-m 目录&#xff0c;并进入该目录创建docker-compose.yml文件&#xff0c;内容如下&#xff1a; version: "3.1" services:pg_master:image: postgres:15.3container_name: pg_masterenvironment:POSTGRES_PASSWORD:…

景区公园一体化设备怎么选

景区公园一体化设备的选型是一个关键的决策&#xff0c;直接影响着景区公园的整体运营效益和游客体验质量。在选择设备时&#xff0c;需要考虑多个因素&#xff0c;包括设备功能、可靠性、易用性、美观性以及与景区公园整体风格的匹配性等。 首先&#xff0c;在选择设备时要确保…

VScode+Live Service+Five Service实现php实时调试

VScodeLive ServiceFive Service实现php实时调试 一、VScode插件安装及配置 1.Code Runner settings.json设置&#xff08;打开方式&#xff1a;ctrlp&#xff0c;搜索settings.json&#xff09; 设置php为绝对路径&#xff08;注意路径分隔符为\\或/&#xff09; 2. Live S…

0101二阶与三阶行列式-行列式-线性代数

一 引例 求解二元一次方程组 { a 11 x 1 a 12 x 2 b 1 a 21 x 1 a 22 x 2 b 2 \begin{cases} a_{11}x_1a_{12}x_2b_1\\ a_{21}x_1a_{22}x_2b_2\\ \end{cases} {a11​x1​a12​x2​b1​a21​x1​a22​x2​b2​​ 解&#xff1a; 1 a 21 − 2 a 11 ⇒ x 2 a 11 b 2 − a…

苹果因在iOS音乐流媒体市场上的反向引导行为,在欧盟被罚款18.4亿欧元

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

cache基础

set index 是 cache line 在 way 中的序号。set index 通常直接简称为 index 。如果一个物理地址确定&#xff0c;那么其 index 就确定了&#xff0c;这个地址对应的数据缓存在哪个 set 中也就确定了。如上图所示&#xff0c; 物理地址的 bits[y-1:x] 决定了数据缓存在哪个set中…

【FastChat】用于训练、服务和评估大型语言模型的开放平台

FastChat 用于训练、服务和评估大型语言模型的开放平台。发布 Vicuna 和 Chatbot Arena 的存储库。 隆重推出 Vicuna&#xff0c;一款令人印象深刻的开源聊天机器人 GPT-4&#xff01; &#x1f680; 根据 GPT-4 的评估&#xff0c;Vicuna 达到了 ChatGPT/Bard 90%* 的质量&…

红帆OA 多处 SQL注入漏洞复现

0x01 产品简介 红帆iOffice.net从最早满足医院行政办公需求(传统OA),到目前融合了卫生主管部门的管理规范和众多行业特色应用,是目前唯一定位于解决医院综合业务管理的软件,是最符合医院行业特点的医院综合业务管理平台,是成功案例最多的医院综合业务管理软件。 0x02 漏…

JavaScript实现将输入框内容放大的效果

问题描述&#xff1a;利用DOM所学知识&#xff0c;实现在输入框内输入内容时&#xff0c;在输入框上方显示一个将文字放大的框&#xff0c;在不输入内容时&#xff0c;这个框是被隐藏的。 关键代码&#xff1a; <!DOCTYPE html> <html lang"en"><he…

手把手教你解析xml格式的word文档-附代码

1 背景 dom4j&#xff0c;Jdom&#xff0c;w3c dom解析xml文档时速度比较慢&#xff0c;因此选择自己写代码解析xml文档。 2 思路 首先&#xff0c;对xml文件进行分析&#xff0c;熟悉标签&#xff1b; 然后&#xff0c;切分文档为不同的块。我们要对文档中的书签进行替换&…

multiprocessing Event实现中断进程或程序

参考&#xff1a;https://www.cnblogs.com/MoKinLi/p/17931515.html import multiprocessing import timedef worker(event, value):while True:# 检查事件是否被设置if event.is_set():# 事件被设置&#xff0c;中断程序break# 模拟工作time.sleep(1)print(f"Working: {…

【云呐】固定资产管理系统包括哪些模块

固定资产管理是企业经营过程中非常重要的任务。为确保资产合理利用和资本增值&#xff0c;企业需建立完善的固定资产管理体系。本文将详细介绍固定资产管理系统的模块和结构&#xff0c;帮助企业更好地管理资产。 固定资产管理系统的模块 财产采购管理功能:该模块主要从事固定…

喜讯!聚铭网络实力入选「网安新兴赛道厂商速查指南」11大细分赛道

近日&#xff0c;国内首家专业聚焦网络安全商业市场研究分析和加速服务的机构——斯元商业咨询正式发布2024「网安新兴赛道厂商速查指南Emerging Technology Vendor Index」。 聚铭网络凭借在网络安全领域的深厚技术积累、丰富的行业应用经验和良好的客户口碑&#xff0c;成功…

湖人官方晒照:新援哈里-贾尔斯今日到队

直播吧指定地址&#xff1a;www.bdky.cn 3月5日讯 今日湖人官方晒照&#xff0c;球队新援哈里-贾尔斯已经到队&#xff01; 此前湖人用双向合同签下内线球员哈里-贾尔斯&#xff0c;本赛季他在篮网打了25场比赛&#xff0c;场均可以拿到3.4分1.6篮板。