进程和内存管理

news2025/4/17 12:23:18

 

目录

一.进程的基本信息

1.1进程的定义

1.2进程的特征

1.3进程的组成

1.4线程产生的背景 

1.5线程的定义

1.6进程与线程的区别 

 1.7进程的类别

1.8进程的优先级 

1.8.1进程优先级的概念

1.8.2PRI和NI

 1.9僵尸进程

  1.9.1僵尸进程的定义

1.9.2僵尸进程产生的原因

1.9.3如何解决僵尸进程

二.查看进程 

2.1静态查看进程信息 ps命令

2.1.1ps aux

2.1.2ps -le

2.1.3ps -l

2.1.4ps -ef 

 2.1.4 -o的使用

2.1.5  [选项]--sort的使用 

2.2动态查看进程信息 top命令 

2.2.1top命令显示的界面的组成

2.2.2top命令的选项

2.2.3top命令的交互界面

2.3 以树状结构显示当前系统中运行的进程 pstree

2.4 查看指定的进程信息 

2.4.1根据PID查程序名 prtstat

2.4.2根据程序名查PID pgrep和pidof

2.5 监控系统资源 vmstat

1. Procs(进程)

2. Memory

3. Swap(交换分区)

4. I/O(磁盘)

5. System(系统)

6. CPU

 三:进程的前后台调度 

 3.1区别

3.2前台和后台程序的切换 

四:结束进程 

4.1kill

4.2killall

五.计划管理工具

5.1计划管理工具的定义

5.2at命令

5.2.1定义

5.2.2格式

5.2.3例子

5.3crontab工具 

5.3.1定义

5.3.2格式

六.怎么查看操作系统的五大性能


一.进程的基本信息

1.1进程的定义

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

1.2进程的特征

动态性:进程是程序的一次动态执行过程,具有生命周期(创建、运行、终止)。

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

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

结构性:由程序、数据集合和进程控制块(PCB)三部分组成。

1.3进程的组成

  1. 程序:用于描述进程要完成的功能,是控制进程执行的指令集。
  2. 数据集合:是程序在执行时所需要的数据和工作区。
  3. 程序控制块(Program Control Block,简称PCB):包含进程的描述信息和控制信息,是进程                                                                                   存在的唯一标志。

1.4线程产生的背景 

早期操作系统中,进程是资源分配和调度的最小单位。但随着应用复杂度提升,进程切换的开销(如内存隔离、上下文保存)成为性能瓶颈,因此引入了更轻量的线程概念。

1.5线程的定义

线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间。

1.6进程与线程的区别 

  1. 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位

  2. 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

  3. 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间

  4. 进程只接收任务, 不处理任务,线程才是干活的那个

题目

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

grep -i threads /proc/[PID]/status  # 查看指定进程的线程数
prtstat [PID]                      # 显示进程详细信息

 1.7进程的类别

  1. 守护进程:完全脱离终端;独立于用户会话运行,系统重启或显式终止才会结束。

  2. 前台进程: 直接与用户终端(如命令行界面)绑定,接收用户输入并实时输出结果;生命周期与终端会话绑定,终端关闭时进程会被终止;与守护进程相比,前台进程可能被系统分配更高优先级以保证响应速度。

1.8进程的优先级 

1.8.1进程优先级的概念

进程优先级是操作系统调度资源的依据,决定了进程获取CPU时间的顺序。优先级越高,进程越容易被调度执行。

1.8.2PRI和NI

在 Linux 系统中,表示进程优先级的有两个参数:Priority Nice

  1. PRI(Priority):直接表示进程优先级,数值越小优先级越高

  2. NI(Nice):调整PRI的修正值,范围通常为−20到19。通过nice值可间接影响优先级,例如:

    PRI新值=PRI原值+NI值

    NI值为负时提高优先级,为正时降低优先级。
ps axo pid,comm,ni  //查看


[root@centos8 ~]#nice -n -10 ping 127.0.0.1


//将进程的 nice值 设为 −10



[root@centos7 ~]#renice -n -20 2118


//将进程的nice值调整为 -20





//注意:普通用户只能调高 NI 值,而不能降低,只有 root 用户才能设定进程 NI 值为负值

 1.9僵尸进程

  1.9.1僵尸进程的定义

僵尸进程是指 已经终止运行(Exit),但其退出状态(Exit Status)尚未被父进程(Parent Process)回收 的进程。在 Linux/Unix 系统中,僵尸进程仍然占用一个 进程表项(Process Table Entry)。

1.9.2僵尸进程产生的原因

僵尸进程的产生主要有 两个根本原因,都与 父进程未能正确处理子进程的退出状态 有关

  1. 子进程终止后,父进程没有调用 wait() 或 waitpid() 来读取子进程的退出状态

  2.  父进程异常终止,未正确移交子进程给 init

1.9.3如何解决僵尸进程

[root@centos7 ~]#bash                 //进入子 Shell

[root@centos7 ~]#echo $BASHPID      //打印当前Bash shell的进程ID(这里是1809)
1809
[root@centos7 ~]#echo $PPID          //打印其父进程ID(这里是1436)
1436
#将父进程设为停止态
[root@centos7 ~]#kill -19 1436      //杀死子进程,使其进入僵尸态

[root@centos7 ~]#kill -9 1809      //向当前shell(1809)发送SIGKILL信号(9),强制终止当前shell


[root@centos7 ~]#ps aux            //查看进程状态,检查是否有僵尸进程,STAT为Z,表示为僵尸态


[root@centos7 ~]#kill -18 1436    //若是父进程未调用 wait()而产生的僵尸进程,则向父进程(1436)发 
                                    送SIGCONT信号(18),恢复被暂停的父进程

[root@centos7 ~]#kill -9 1436      //若父进程异常终止未传递子进程,则向父进程(1436)发送SIGKILL 
                                    信号(9),强制终止父进程


[root@centos7 ~]#ps aux           //再次观察,可以发现僵尸态的进程不存在了

二.查看进程 

2.1静态查看进程信息 ps命令

ps 即 process state,是用于查看当前运行的进程信息的命令。

格式:ps [选项]

选项功能
-a显示当前终端下的所有进程信息,包括其他用户的进程。与“x”选项结合时将示系统中所有的进程信息。
-u使用以用户为主的格式输出进程信息。
-x显示当前用户在所有终端下的进程信息。
-e显示系统内的所有进程信息。
-l使用长(Long)格式显示进程信息。
-f使用完整的(Full)格式显示进程信
[选项]--sort 对属性排序,属性前加 - 表示倒序
 -o用于 自定义输出,允许你只显示特定的进程信息字段

2.1.1ps aux

显示系统中所有用户的进程

 了解

TTY

tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端)
tty1~tty6 是本地的字符界面终端
tty7 是图形终端
pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个
远程连接占用 pts/1,?代表和终端无关
STAT 组合状态示例
状态码	解释
Ss	会话领导者(如 bash),处于可中断睡眠状态。
Rl	多线程进程(如 java),正在运行或可运行。
D<	高优先级的不可中断睡眠进程(如内核磁盘 I/O 操作)。
S+	前台进程(如 vim),处于可中断睡眠状态。
Z	僵尸进程(需父进程调用 wait() 回收资源)。

2.1.2ps -le

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

 了解:

F 值含义
0普通进程,无特殊标志。
1进程刚被 fork() 但尚未执行新程序(如 bash 启动的子进程)。
4进程以 root 权限运行(如 sudo 启动的进程)。
40进程是会话领导者(如 sshd 或终端 shell)。
41会话领导者 + 刚 fork()(如 sshd 新创建的会话)。
100进程被调试器(如 gdb)附加。

2.1.3ps -l

只能看到当前 Shell 产生的进程

2.1.4ps -ef 

要注意区分与ps aux的区别

ps -ef 是 UNIX System V 风格 的命令格式,与 BSD 风格(如 ps aux)形成鲜明对比

3. 与 BSD 风格(ps aux)的关键区别

对比项UNIX 风格(ps -efBSD 风格(ps aux
选项前缀必须加 -(如 -e-f无 -(直接写 aux
用户显示UID(数字)USER(用户名)
CPU/内存无默认列,需手动指定(如 ps -eo %cpu,%mem默认显示 %CPU 和 %MEM
命令行信息CMD(短格式),-f 显示完整命令默认显示完整 COMMAND
进程树ps -ejHps axjf

 2.1.4 -o的使用

格式;ps -o <字段1>,<字段2>,<字段3>...

 例子:

2.1.5  [选项]--sort的使用 

作用:用于 按指定字段对进程列表进行排序,帮助快速识别高资源占用的进程或特定状态的进程

ps [选项] --sort=[+|-]字段名

+字段名:升序排序(默认,可省略 +)。

-字段名:降序排序(如 -%cpu 表示 CPU 占用从高到低)。

多字段排序:用逗号分隔(如 --sort=-%cpu,%mem)

例子:

2.2动态查看进程信息 top命令 

top是 Linux 系统中一个 实时动态监控系统进程和资源占用 的交互式工具,比 ps 更直观,适合实时观察 CPU、内存、负载等关键指标

2.2.1top命令显示的界面的组成

界面主要分为两部分

  1. 系统汇总信息(顶部前5行)

    • 系统运行时间、用户数、负载均衡(Load Average)、CPU/内存使用率等。

  2. 进程列表(下方)

    • 实时更新的进程状态(默认按 CPU 占用排序)。

如下图所示: 

 系统汇总信息 (顶部前5行) 

第一行:系统运行时间与负载

内 容说 明
13:43:55系统当前时间
up 1:57系统的运行时间1小时57分钟
4 users当前登录了四个用户
load average: 0.00,0.00,0.00系统在之前 1 分钟、5 分钟、15 分钟的平均负载

 第二行:任务(进程)状态

内 容说 明
Tasks: 216 total系统中的进程总数
1 running正在运行的进程数
215 sleeping睡眠的进程数
0 stopped正在停止的进程数
0 zombie僵尸进程数。如果不是 0,则需要手工检查僵尸进程

第三行:CPU使用率

字段含义
us用户空间 CPU 占用(如应用程序运算)。
sy内核空间 CPU 占用(如系统调用、中断处理)。
ni低优先级进程nice值>0)占用的CPU。
id空闲CPU百分比(越高说明系统负载越轻)。
waI/O等待(高值说明磁盘或网络瓶颈)。
hi/si硬件/软件中断占用(通常接近0)。
st虚拟机偷取时间(若>10%,说明宿主物理机资源不足)

第四行:物理内存(RAM)

字段含义
total内存总量(单位:MiB)。
free完全未使用的内存(Linux会充分利用空闲内存缓存数据,此值低未必是问题)。
used已使用的内存(含应用程序和缓存)。
buff/cache缓存和缓冲区内存(可被快速释放供应用程序使用)。

第五行:交换分区(Swap)

字段含义
total/free/usedSwap分区总量/剩余/使用量(若used持续>0,说明物理内存不足)。
avail Mem可用内存估算(含未被占用的缓存,更真实反映剩余可用内存)。

 进程列表(动态刷新)

字段含义同ps 命令

2.2.2top命令的选项

选项作用示例
-d <秒>设置刷新间隔时间(默认3秒)。top -d 1(每秒刷新)
-n <次数>刷新指定次数后自动退出(适合脚本捕获数据)。top -n 2(刷新2次后退出)
-b批处理模式(禁止交互,直接打印结果)。top -b -n 1 > log.txt
-p <PID>仅监控指定PID(多个PID用逗号分隔)。top -p 1234,5678
-u <用户>仅显示指定用户的进程。top -u mysql
-c切换显示完整命令行(启动时直接展开)。top -c

2.2.3top命令的交互界面

在 top 运行后,可通过按键动态调整:

按键功能
m按内存使用率排序(升序)。
T按运行时间排序(降序)。
N按PID排序(升序)。
c按照 CPU 的使用率排序,默认就是此选项
k终止进程(需输入PID,默认发送SIGTERM)。
r调整进程优先级(需输入PID和新的nice值)。
h或者?显示帮助菜单。
q退出 top

2.3 以树状结构显示当前系统中运行的进程 pstree

pstree是 Linux 中用于 以树状结构可视化进程父子关系 的命令,比 ps 更直观地展示进程的层次结构。

pstree  //不指定参数:显示整个系统的进程树,以 systemd(或 init)为根节点。

pstree [选项] <PID>   //指定 PID:显示该进程及其子进程的子树。

pstree [选项] <用户名>  //指定用户名:仅显示该用户的进程树。



常用选项
-a	显示启动每个进程对应的完整指令,包括启动进程的路径、参数等
-p  显示PID
-T  不显示线程thread,默认显示线程
-u  显示用户切换
-H  pid 高亮显示指定进程及其前辈进程

2.4 查看指定的进程信息 

2.4.1根据PID查程序名 prtstat

例子:查找PID=10268的进程信息

2.4.2根据程序名查PID pgrep和pidof

选项作用
-l同时输出进程名(否则仅输出 PID)。
-u按用户名过滤(如 -u root)。
-a显示完整格式的进程名。
-p pid显示指定进程的子进程。

例子: 

[root@test ~]# pgrep -l "log"    //显示进程名
435 xfs-log/dm-0
713 xfs-log/sda1
790 xfs-log/md5
877 systemd-logind
885 abrt-watch-log
886 abrt-watch-log
890 rsyslogd


[root@localhost ~]#pidof nginx   //查看  nginx进程的 pid 号
22142 22002

2.5 监控系统资源 vmstat

vmstat(Virtual Memory Statistics)是 Linux 系统中用于 监控系统资源使用情况 的命令行工具,主要报告 内存、进程、CPU 活动、磁盘 I/O 等关键指标。

1. Procs(进程)
字段含义
r运行队列中的进程数(正在运行或等待 CPU 的进程,若持续 > CPU 核心数,说明 CPU 饱和)。
b不可中断睡眠的进程数(通常因 I/O 阻塞,如磁盘读写)。
2. Memory
字段含义
swpd已使用的 交换分区(Swap) 大小。
free空闲的物理内存
buff用作 缓冲区 的内存(缓存文件元数据)。
cache用作 页面缓存 的内存(缓存文件内容)。
3. Swap(交换分区)
字段含义
si从磁盘换入内存 的数据量(KB/s,高值说明内存不足)。
so从内存换出到磁盘 的数据量(KB/s,高值说明内存不足)。
4. I/O(磁盘)
字段含义
bi从块设备读取 的块数(Blocks/s,如磁盘读操作)。
bo写入块设备 的块数(Blocks/s,如磁盘写操作)。
5. System(系统)
字段含义
in每秒中断次数(包括时钟中断)。
cs每秒上下文切换次数(进程/线程切换,高值可能因过多线程或锁竞争)。
6. CPU
字段含义
us用户空间 CPU 时间(应用程序运算)。
sy内核空间 CPU 时间(系统调用、中断处理)。
id空闲 CPU 时间
waI/O 等待时间(高值说明磁盘瓶颈)。
st虚拟机偷取时间(若 >10%,物理机资源不足)。

 三:进程的前后台调度 

 3.1区别

特性前台进程后台进程
终端控制权占用当前终端,用户无法输入其他命令,直到进程结束。不占用终端,启动后立即返回 Shell,用户可继续操作。
适用场景需要交互的命令(如 vimpasswd)。长时间运行的任务(如编译、下载),并行运行

3.2前台和后台程序的切换 

Linux 前后台任务管理
├── **后台启动**
│   └── `命令 + &`(例:`python script.py &`)
├── **查看任务**
│   └── `jobs -l`(显示任务编号与进程ID)
├── **前后台切换**
│   ├── 前台转后台:`Ctrl+Z` → `bg %任务编号`
│   └── 后台转前台:`fg %任务编号`
├── **任务控制**
│   ├── 暂停任务:`Ctrl+Z`
│   └── 恢复后台运行:`bg %任务编号`
└── **终止任务**
    └── `kill %任务编号` 或 `kill 进程ID`

四:结束进程 

4.1kill

kill 命令是 Linux 中用于 向进程发送信号(Signal) 的核心工具,用于终止进程

kill [选项] <PID>  // 通过进程ID发送信号



常用信号
-1       重新加载进程

-9       强制结束进程
    
-19      暂时停止进程
-18      让进程从停止状态恢复

4.2killall

killall 是 Linux 中用于 按进程名批量终止进程 的命令,相比 kill(需指定 PID),它直接通过进程名称操作,更适合批量管理。

命令格式
killall [选项] [信号] 进程名

[选项]
-u  仅终止指定用户的进程
-l  列出可用的信号列表
-i  交互式,询问是否要杀死某个进程
-I  忽略进程名的大小写

五.计划管理工具

5.1计划管理工具的定义

计划管理工具是指通过系统化的方法,帮助个人或组织对任务、资源、时间等要素进行规划、协调、监控和优化的软件或平台。其核心目标是通过结构化流程提升效率,确保项目或任务在既定时间、预算和资源约束下达成目标

5.2at命令

5.2.1定义

 at命令是 Linux 中用于 在指定时间执行一次性任务 的计划任务工具,适合临时安排未来某个时间点运行的命令或脚本。

5.2.2格式

at [选项] 时间  

其中关于时间有绝对时间相对时间两种计时方式

绝对时间 

  • 格式用法
    HH:MM比如 04:00 AM。如果时间已过,则它会在第二天的同一时间执行。
    Midnight(midnight)代表 12:00 AM(也就是 00:00)。
    Noon(noon)代表 12:00 PM(相当于 12:00)。
    Teatime(teatime)下午茶代表 4:00 PM(相当于 16:00)。
    英文月名 日期 年份比如 January 15 2018 表示 2018 年 1 月 15 号,年份可有可无。
    MMDDYY、MM/DD/YY、MM.DD.YY比如 011518 表示 2018 年 1 月 15 号。

相对时间

now +n minutes-----------从现在起 n 分钟后

now +n hours--------------从现在起 n 小时后

now +n days---------------从现在起 n 天后

now +n weeks-------------从现在起 n 周后

5.2.3例子

at 14:30
at> echo "会议时间到了!" > ~/reminder.txt
at> <按Ctrl+D结束>

//这个命令会在下午2:30创建一个提醒文件



at now + 5 minutes
at> wall "系统将在5分钟后重启,请保存工作!"
at> <Ctrl+D>

//5分钟后执行命令


at midnight 12252023
at> /home/user/christmas_script.sh
at> <Ctrl+D>

//2023年12月25日午夜执行命令

5.3crontab工具 

5.3.1定义

crontab是 Linux/Unix 系统中用于设置 周期性任务 的工具,允许用户在固定时间、日期或间隔自动执行命令或脚本。与 at(单次任务调度)不同,crontab适用于 重复性任务。

5.3.2格式

crontab [选项]  文件名

选项说明
-e编辑当前用户的 crontab 文件
-l列出当前用户的 crontab 任务
-r删除当前用户的 crontab 任务(全部删除)
-i删除前提示确认(配合 -r 使用)
-u user管理指定用户的 crontab(需 root 权限)
crontab -l   //查看当前用户的crontab

crontab -e   //创建或编辑当前用户的crontab

执行此命令后,会打开一个文本编辑器,编辑crontab文件

 crontab时间格式

*    *    *    *    *    command_to_execute
│    │    │    │    │
│    │    │    │    └───── 星期 (0 - 6, 0=周日)
│    │    │    └────────── 月份 (1 - 12)
│    │    └─────────────── 日 (1 - 31)
│    └──────────────────── 小时 (0 - 23)
└───────────────────────── 分钟 (0 - 59)

特殊符号说明

符号含义示例
*任意值(每分钟/每小时等)* * * * * → 每分钟执行
,指定多个时间点0,15,30,45 * * * * → 每 15 分钟执行
-时间范围0 9-18 * * * → 9AM-6PM 每小时执行
/间隔时间*/5 * * * * → 每 5 分钟执行

 5..3.3例子

# 每天 9AM-6PM,每小时执行一次
0 9-18 * * * /path/to/check_status.sh

# 每周一至周五,上午 8:30 执行
30 8 * * 1-5 /path/to/daily_task.sh

# 每月 1 号和 15 号,晚上 11:30 执行
30 23 1,15 * * /path/to/monthly_job.sh

# 每 10 分钟执行,但仅在工作日(周一到周五)
*/10 * * * 1-5 /path/to/frequent_task.sh

六.怎么查看操作系统的五大性能

1.内存

2.磁盘 磁盘剩余量 磁盘I/O读写性能

3.CPU CPU占用率

4.网络

内存用free;top

磁盘剩余量用df;lsblk;fdisk -l

磁盘读写用iostat;vmstat

CPU用top(实时) ps(静态)

网络 iftop 

系统版本cat /etc/redhat-release

ip地址 ifconfig

内核版本 uname-r 

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

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

相关文章

React 项目使用 pdf.js 及 Elasticpdf 教程

摘要&#xff1a;本文章介绍如何在 React 中使用 pdf.js 及基于 pdf.js 的批注开发包 Elasticpdf。简单 5 步可完成集成部署&#xff0c;包括数据的云端同步&#xff0c;示例代码完善且简单&#xff0c;文末有集成代码分享。 1. 工具库介绍与 Demo 1.1 代码包结构 ElasticP…

性能测试之jmeter的基本使用

简介 Jmeter是Apache的开源项目&#xff0c;基于Java开发&#xff0c;主要用于进行压力测试。 优点&#xff1a;开源免费、支持多协议、轻量级、功能强大 官网&#xff1a;https://jmeter.apache.org/index.html 安装 安装步骤&#xff1a; 下载&#xff1a;进入jmeter的…

CAD插件实现:所有文字显示到列表、缩放、编辑——CAD-c#二次开发

当图中有大量文字&#xff0c;需要全部显示到一个列表时并缩放到需要的文字时&#xff0c;可采用插件实现&#xff0c;效果如下&#xff1a; 附部分代码如下&#xff1a; private void BtnSelectText_Click(object sender, EventArgs e){var doc Application.DocumentManager.…

Oracle数据库数据编程SQL<8 文本编辑器Notepad++和UltraEdit(UE)对比>

首先&#xff0c;用户界面方面。Notepad是开源的&#xff0c;界面看起来比较简洁&#xff0c;可能更适合喜欢轻量级工具的用户。而UltraEdit作为商业软件&#xff0c;界面可能更现代化&#xff0c;功能布局更复杂一些。不过&#xff0c;UltraEdit支持更多的主题和自定义选项&am…

Linux驱动开发练习案例

1 开发目标 1.1 架构图 操作系统&#xff1a;基于Linux5.10.10源码和STM32MP157开发板&#xff0c;完成tf-a(FSBL)、u-boot(SSBL)、uImage、dtbs的裁剪&#xff1b; 驱动层&#xff1a;为每个外设配置DTS并且单独封装外设驱动模块。其中电压ADC测试&#xff0c;采用linux内核…

Apache httpclient okhttp(1)

学习链接 Apache httpclient & okhttp&#xff08;1&#xff09; Apache httpclient & okhttp&#xff08;2&#xff09; httpcomponents-client github apache httpclient文档 apache httpclient文档详细使用 log4j日志官方文档 【Java基础】- HttpURLConnection…

微信小程序—路由

关于 app.json 中的配置 app.json 主要是对整个小程序进行一个全局的配置。 pages&#xff1a;在这个配置项目中&#xff0c;就可以配置小程序里面的页面&#xff0c;小程序默认显示 pages 数组中的第一个页面windows&#xff1a;主要配置和导航栏相关的 当然&#xff0c;在…

人工智能驱动的数据仓库优化:现状、挑战与未来趋势

1. 引言&#xff1a;数据仓库的演进与人工智能驱动优化的兴起 现代数据仓库的复杂性和规模正以前所未有的速度增长&#xff0c;这主要是由于数据量、种类和产生速度的急剧增加所致。传统的数据仓库技术在应对这些现代数据需求方面显得力不从心&#xff0c;这催生了对更先进解决…

LVS高可用负载均衡

一、项目图 二、主机规划 主机系统安装应用网络IPclientredhat 9.5无NAT192.168.72.115/24lvs-masterredhat 9.5ipvsadm&#xff0c;keepalivedNAT192.168.72.116/24 VIP 192.168.72.100/32lvs-backupredhat 9.5ipvsadm&#xff0c;keepalivedNAT192.168.72.117/24 VIP 192.168…

脑影像分析软件推荐 | JuSpace

目录 1. 软件界面 2.工具包功能简介 3.软件安装注意事项 参考文献&#xff1a; Dukart J, Holiga S, Rullmann M, Lanzenberger R, Hawkins PCT, Mehta MA, Hesse S, Barthel H, Sabri O, Jech R, Eickhoff SB. JuSpace: A tool for spatial correlation analyses of magne…

逛好公园的好处

逛公园和软件开发看似是两个不同的活动&#xff0c;但它们之间存在一些有趣的关联和相互促进的关系&#xff1a; 激发创造力&#xff1a;公园中的自然景观、多样的人群以及各种活动能为开发者带来新的灵感和创意。软件开发过程中&#xff0c;从公园中获得的创意可以帮助开发者设…

【网络安全】 防火墙技术

防火墙是网络安全防御的重要组成部分&#xff0c;它的主要任务是阻止或限制不安全的网络通信。在这篇文章中&#xff0c;我们将详细介绍防火墙的工作原理&#xff0c;类型以及如何配置和使用防火墙。我们将尽可能使用简单的语言和实例&#xff0c;以便于初学者理解。 一、什么…

文档的预解析

1. 预解析的核心目标 浏览器在正式解析&#xff08;Parsing&#xff09;HTML 前&#xff0c;会启动一个轻量级的 预解析器&#xff08;Pre-Parser&#xff09;&#xff0c;快速扫描文档内容&#xff0c;实现&#xff1a; 提前发现并加载关键资源&#xff08;如 CSS、JavaScrip…

记一次表格数据排序优化(一)--排序30000条数据有多卡

目录 需求 第一次尝试 运行环境 思路 存储 排序 触发排序操作 如何实现高效的排序 关键1 关键2 关键3 磨刀不误砍柴工 关键4 代码 效果 卡顿原因分析 原因1 原因2 第二次尝试 需求 1 我的qt程序通过表格显示30000条数据。数据来自udp&#xff0c;udp每隔10秒…

图形渲染中的定点数和浮点数

三种API的NDC区别 NDC全称&#xff0c;Normalized Device Coordinates Metal、Vulkan、OpenGL的区别如下&#xff1a; featureOpenGL NDCMetal NDCVulkan NDC坐标系右手左手右手z值范围[-1,1][0,1][0,1]xy视口范围[-1,1][-1,1][-1,1] GPU渲染的定点数和浮点数 定点数类型&a…

【深度学习】CNN简述

文章目录 一、卷积神经网络&#xff08;CNN&#xff09;二、CNN结构特性1. CNN 典型结构2. 局部连接3. 权重共享4.空间或时间上的次采样 三、理解层面 一、卷积神经网络&#xff08;CNN&#xff09; 卷积神经网络(Convolutional Neural Network&#xff0c;CNN)是一种用于处理…

强化学习课程:stanford_cs234 学习笔记(3)introduction to RL

文章目录 前言7 markov 实践7.1 markov 过程再叙7.2 markov 奖励过程 MRP&#xff08;markov reward process&#xff09;7.3 markov 价值函数与贝尔曼方程7.4 markov 决策过程MDP&#xff08;markov decision process&#xff09;的 状态价值函数7.4.1 状态价值函数7.4.2 状态…

紫檀博物馆一游与软件开发

今天去逛了中国紫檀博物馆&#xff0c;里边很多层展品&#xff0c;也有一些清代的古物&#xff0c;檀木&#xff0c;黄花梨木家具和各种摆件&#xff0c;馆主陈丽华女士也是发心复原、保留和弘扬中国的传统文化&#xff0c;和西游记唐僧扮演者迟成瑞先生一家。 每一件展品都精…

RocketMQ初认识

ProducerCustomerNameServer: Broker的注册服务发现中心BrokerServer:主要负责消息的存储、投递和查询以及服务高可用保证 RocketMQ的集群部署&#xff1a; 单个master的分支多个Master 模式&#xff1a;集群中有多个 Master 节点&#xff0c;彼此之间相互独立。生产者可以将消…

Chrome开发者工具实战:调试三剑客

在前端开发的世界里&#xff0c;Chrome开发者工具就是我们的瑞士军刀&#xff0c;它集成了各种强大的功能&#xff0c;帮助我们快速定位和解决代码中的问题。今天&#xff0c;就让我们一起来看看如何使用Chrome开发者工具中的“调试三剑客”&#xff1a;断点调试、调用栈跟踪和…