Linux磁盘高级操作

RAID

RAID存储系统是一种数据存储虚拟化技术,它将多个物理磁盘驱动器组合成一个或多个逻辑单元,以提供数据冗余和/或提高性能。

1. RAID 0 无奇偶校验与冗余(磁盘容错)的条带存储(带区卷/条带卷)

由两块或两块以上的硬盘组成
每块硬盘提供的空间大小必须一致
在所有动态磁盘中读写速度最快
磁盘损坏几率最大

2. RAID 1 镜像卷每块硬盘提供的空间大小必须一致

磁盘利用率最低(50%利用率)
拥有一定的磁盘容错功能
在所有动态磁盘中写入速度最慢
安全性最高

3. RAID 10 镜像与条带存储

是 RAID1 与 RAID0 的结合体
先进行镜像(RAID1),再进行条带存放(RAID0)
具有 RAID1 的安全性
具有 RAID0 的读写速度

4. RAID 01(条带存储与镜像)

是 RAID1 与 RAID0 的组合体
先进行条带存放(RAID0),再进行镜像(RADI1)

5. RAID10 与 RAID01 的区别

(1)数据读取的区别:RAID10:允许损坏不同组的两块硬盘,可以正常读取RAID01:允许损坏同组的两块硬盘,可以正常读取(2)数据修复的区别:RAID10:同组的用一块硬盘复制,节约系统资源RAID01:一块损坏,需要多块硬盘参与修复

6. RAID5

由三块或三块以上的硬盘组成
每块硬盘提供的空间大小必须一致
拥有磁盘容错功能
磁盘利用率为 n-1/n

7. 预备磁盘功能(spare disk)

预备磁盘就是一块或多块本身不在磁盘阵列内的磁盘。当磁盘阵列中有磁盘损坏时,会被主动拉进磁盘阵列中,并将坏掉的那块磁盘移出磁盘列阵,然后立即重建数据系统。

LVM

一、概述

lvm是linux下对磁盘分区进行管理的一种工具,适合管理大存储设备,并允许用户动态扩容文件系统。

在这里插入图片描述

物理卷(PV)是lvm最底层的概念,是lvm的逻辑存储块,物理卷与磁盘分区是逻辑对应的关系。多个LVM物理卷可以合并或拆分,从而实现容量扩容和缩减。

卷组(VG)卷组是LVM逻辑上的设备、有物理卷组合而成、卷组的大小取决于物理卷的容量及个数。

逻辑卷(LV)逻辑卷可以理解成LVM中的分区。LV建立在VG之上,可以指定从VG中提取多少容量来创建逻辑卷,然后对LV进行格式化并挂载.

PEPV中可以分配的最小存储单元为PE,大小可以指定,默认4MB

LELV中可以分配的最小存储单元称为LE。在同一个卷组中,LE和PE大小相同且一 一对应

二、功能命令

功能pv管理命令VG管理命令LV管理命令
scan扫描pvscanvgscanlvscan
create创建pvcreatevgcreatelvcreate
display显示pvdisplayvgdisplaylvdisplay
remove移除pvremovevgremovelvremove
extend扩展vgextendlvresize
reduce减少vgreducelvreduce

常用查看操作命令

查看卷名查看简单卷信息扫描相关的所有对应的卷详细对应卷信息的查看
物理卷pvspvscanpvdisplay
卷组vgsvgscanvgdisplay
逻辑卷lvslvscanlvdisplay

三、操作方法

创建
1.创建pv物理卷
[root@localhost ~]# pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created.
2.创建vg卷组
[root@localhost ~]# vgcreate myvg /dev/sdb1Volume group "myvg" successfully created
3.创建lv逻辑卷

选项-L指定逻辑卷大小。-n指定逻辑卷名称、所属卷组名称

[root@localhost ~]# lvcreate -L 1G -n rs myvgLogical volume "rs" created.
扫描
1.扫描物理卷
[root@localhost ~]# pvscanPV /dev/sdb1   VG myvg            lvm2 [<2.00 GiB / 1020.00 MiB free]PV /dev/sda2   VG centos          lvm2 [<19.50 GiB / 0    free]Total: 2 [21.49 GiB] / in use: 2 [21.49 GiB] / in no VG: 0 [0   ]
2.扫描卷组
[root@localhost ~]# vgscan Reading volume groups from cache.Found volume group "myvg" using metadata type lvm2Found volume group "centos" using metadata type lvm2
3.扫描逻辑卷
[root@localhost ~]# lvscanACTIVE            '/dev/myvg/rs' [1.00 GiB] inheritACTIVE            '/dev/centos/swap' [1.00 GiB] inheritACTIVE            '/dev/centos/root' [<18.50 GiB] inherit
显示
1.显示物理卷详细信息
[root@localhost ~]# pvdisplay /dev/sdb1--- Physical volume ---PV Name               /dev/sdb1VG Name               myvgPV Size               2.00 GiB / not usable 4.00 MiBAllocatable           yes PE Size               4.00 MiBTotal PE              511Free PE               255Allocated PE          256PV UUID               p3fERZ-62cr-w8Wg-rkki-ERcC-4qoO-mO8sE0
2.显示卷组myvg详细信息
[root@localhost ~]# vgdisplay myvg --- Volume group ---VG Name               myvgSystem ID             Format                lvm2Metadata Areas        1Metadata Sequence No  2VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                1Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               <2.00 GiBPE Size               4.00 MiBTotal PE              511Alloc PE / Size       256 / 1.00 GiBFree  PE / Size       255 / 1020.00 MiBVG UUID               rA6hfY-a5CV-woOu-RzCH-yIeh-mHpO-2kPD9f
3.显示逻辑卷详细信息
[root@localhost ~]# lvdisplay /dev/myvg/rs --- Logical volume ---LV Path                /dev/myvg/rsLV Name                rsVG Name                myvgLV UUID                rAVHET-vdkf-xJI2-rbjJ-m3QN-MbVz-XTS5JcLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2024-05-18 18:03:09 +0800LV Status              available# open                 0LV Size                1.00 GiBCurrent LE             256Segments               1Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:2
扩展
1.扩展卷组
#新建物理卷
[root@localhost ~]# pvcreate /dev/sdb2Physical volume "/dev/sdb2" successfully created.[root@localhost ~]# vgextend myvg /dev/sdb2Volume group "myvg" successfully extended
2.扩展逻辑卷

选项-L指定逻辑卷大小

[root@localhost ~]# lvresize -L +1G /dev/myvg/rs Size of logical volume myvg/rs changed from 2.00 GiB (512 extents) to 3.00 GiB (768 extents).Logical volume myvg/rs successfully resized.
减少
1.减少卷组
[root@localhost ~]# vgreduce myvg /dev/sdb2Physical volume "/dev/sdb2" still in use
2.减少逻辑卷
[root@localhost ~]# lvreduce -L -1G /dev/myvg/rs WARNING: Reducing active logical volume to 2.00 GiB.THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce myvg/rs? [y/n]: ySize of logical volume myvg/rs changed from 3.00 GiB (768 extents) to 2.00 GiB (512 extents).Logical volume myvg/rs successfully resized.
移除
1.移除逻辑卷
[root@localhost ~]# lvremove /dev/myvg/rs 
Do you really want to remove active logical 
2.移除卷组
[root@localhost ~]# vgremove myvg Volume group "myvg" successfully removed
3.移除物理卷
[root@localhost ~]# pvremove /dev/sdb2Labels on physical volume "/dev/sdb2" successfully wiped.

四、使用工具完成LVM划分

1.安装SSM工具

SSM:检查关于可用硬驱和LVM卷的信息。

[root@localhost ~]# yum -y install system-storage-manager
2.列出设备信息
[root@localhost ~]# ssm list dev
------------------------------------------------------------
Device        Free      Used      Total  Pool    Mount point
------------------------------------------------------------
/dev/sda                       20.00 GB                     
/dev/sda1                     512.00 MB          /boot      
/dev/sda2  0.00 KB  19.50 GB   19.50 GB  centos             
/dev/sdb                       20.00 GB                     
/dev/sdb1                       2.00 GB          /mnt       
/dev/sdb2                       2.00 GB                     
/dev/sdc                       20.00 GB                     
------------------------------------------------------------
3.列出存储池信息
[root@localhost ~]# ssm list pool
--------------------------------------------------
Pool    Type  Devices     Free      Used     Total  
--------------------------------------------------
centos  lvm   1        0.00 KB  19.50 GB  19.50 GB  
--------------------------------------------------
4.自动把设备变成PV,创建VG,LV,格式化文件系统,自动挂载
[root@localhost ~]# ssm create -s 1G -n mail-lv --fstype xfs -p mail /dev/sdb2 /mail-lv
-s:lv大小  -n:lv名称  --fstype lv文件系统类型  -p:卷组名  设备  挂载点
[root@localhost ~]# df -h /mail-lv/
文件系统                   容量  已用  可用 已用% 挂载点
/dev/mapper/mail-mail--lv 1014M   33M  982M    4% /mail-lv

磁盘配额

1. 为什么要有Quota磁盘配额(起因)

由于Linux是多任务多用户的操作系统,所以多个用户使用同一块硬盘的情况时有发生

2. Quota能做什么(作用)

限制用户和组的容量限制和文件限量限制(block和inode)

限制block就等于限制了用户可以使用的磁盘容量。

限制inode就等于限制了用户能创建的文件数量。

限制某一目录的最大磁盘配额(directiory project):

3. Quota磁盘配额(开启条件)

盘配额是针对分区进行的设置

内核必须支持quota:在cent5.x以后都已经默认支持quota功能

[root@localhost yang]# grep CONFIG_QUOTA /boot/config-3.10.0-957.el7.x86_64 
CONFIG_QUOTA=y
CONFIG_QUOTA_NETLINK_INTERFACE=y
# CONFIG_QUOTA_DEBUG is not set
CONFIG_QUOTA_TREE=y
CONFIG_QUOTACTL=y
CONFIG_QUOTACTL_COMPAT=y

查看quota命令是否安装

[root@localhost yang]# rpm -qa |grep quota
quota-4.01-17.el7.x86_64
quota-nls-4.01-17.el7.noarch

quota只对一般身份用户有效(例如root就不能设置quota)

4. 磁盘配额的基本概念(概念)

软限制(soft)用户在低于软限制的时候可以正常使用磁盘,如果超过软限制之后且低于硬限制的时候,每次用户登录系统时系统会发出警告信息,并且超出部分会有宽限天数,宽限天数到期后锁住用户磁盘使用权限。

硬限制(hard)表示用户的用量绝对不会超过这个限制值,如果超过硬限制则会所著该用户对磁盘的使用权限。

宽限天数宽限时间只有用在用户的磁盘用量介于软限制和硬限制之间时会出现。由于达到硬限制的时候用户的磁盘使用权会被锁住。宽限天数默认为7天。

5.磁盘配额实验(如何使用)

5.1 临时开启磁盘配额
#临时开启磁盘配额17  mount -o usrquota,grpquota /dev/sdb1 /mnt/24  mount | grep "/dev/sdb1"25  df -h26  df -h /dev/sdb1
5.2 永久开启磁盘配额
#永久开启磁盘配额
[root@localhost ~]# blkid | grep "sdb1"
/dev/sdb1: UUID="089d5a72-161d-49bc-ba0a-2df9f1ac0a2a" TYPE="xfs" PARTLABEL="Linux filesystem" PARTUUID="08ddce5e-a2b8-4ced-a7f8-60905650d62d" 
[root@localhost ~]# vim /etc/fstab
UUID=089d5a72-161d-49bc-ba0a-2df9f1ac0a2a /mnt  xfs defaults,usrquota,grpquota 0 0
5.3 编辑磁盘配额命令(xfs_quota -x -c “命令”)
xfs_quota -x -c "命令"-x:启用专家模式允许对磁盘配额进行编辑-c:quota可以在交互模式和命令模式两种方法下执行,添加-c命令可以让quota顺序执行-c选项后的命令print:输出所有具有xfs设备标识df:和df命令相同,可以添加-b、-i等report:输出当前的磁盘配额信息,需要结合ugrbi等选项state:目前支持磁盘配额的文件系统信息
5.4 输出所有具有xfs设备标识
[root@localhost ~]# xfs_quota -x -c "print"
Filesystem          Pathname
/                   /dev/mapper/centos-root
/boot               /dev/sda1
/mnt                /dev/sdb1 (uquota, gquota, pquota)
5.5 查看block和inode
[root@localhost ~]# xfs_quota -x -c "df -i"
Filesystem              Inodes      IUsed      IFree IUse% Pathname
/dev/mapper/centos-root9697280     127816    9569464    1% /
/dev/sda1               262144        340     261804    0% /boot
/dev/sdb1              1048576          6    1048570    0% /mnt[root@localhost ~]# xfs_quota -x -c "df -b"
Filesystem           1K-blocks       Used  Available  Use% Pathname
/dev/mapper/centos-root19384320    3670612   15713708   19% /
/dev/sda1               520868     162892     357976   31% /boot
/dev/sdb1              2086912      33004    2053908    2% /mnt
5.6 查看当前支持磁盘配额的文件系统
[root@localhost ~]# xfs_quota -x -c "state"
User quota state on /mnt (/dev/sdb1)Accounting: ON    #是否记录Enforcement: ON   #是否开启Inode: #67 (1 blocks, 1 extents)   用户
Group quota state on /mnt (/dev/sdb1)Accounting: ONEnforcement: ONInode: #68 (1 blocks, 1 extents)   用户组
Project quota state on /mnt (/dev/sdb1)Accounting: ONEnforcement: ONInode: #68 (1 blocks, 1 extents)   目录
Blocks grace time: [7 days]
Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]  #宽限天数
5.7 输出当前用户、用户组、目录磁盘限制信息
[root@localhost ~]# xfs_quota -x -c "report -ugpbih" /mnt/#不加-x选项不能够成功执行命令。
#report后面的选项分别是 
u:用户  g:组  b:block块  p:目录  i:inode号  h:以常见单位大小显示
5.8 设置限制用户磁盘文件数量和容量
#限制用户容量
[root@localhost ~]# xfs_quota -x -c "limit -u bsoft=20M bhard=40M yang" /mnt/#使用dd命令验证用户容量
[yang@localhost mnt]$ dd if=/dev/zero of=/mnt/a.txt bs=4M count=20
dd: 写入"/mnt/a.txt" 出错: 超出磁盘限额
记录了11+0 的读入
记录了10+0 的写出
41943040字节(42 MB)已复制,0.0417043 秒,1.0 GB/秒#限制用户文件数量
[root@localhost ~]# xfs_quota -x -c "limit -u isoft=4 ihard=10 yang" /mnt/
#使用mkdir在yang用户验证文件数量
[yang@localhost mnt]$ mkdir {1..20}.txt
mkdir: 无法创建目录"11.txt": 超出磁盘限额
mkdir: 无法创建目录"12.txt": 超出磁盘限额
mkdir: 无法创建目录"13.txt": 超出磁盘限额
mkdir: 无法创建目录"14.txt": 超出磁盘限额
5.9 设置限制用户组磁盘文件数量和容量
#限制用户组容量和文件数量
[root@localhost ~]# xfs_quota -x -c "limit -g  bsoft=20M bhard=40M yang" /mnt/#验证容量限制
[xxhf@localhost mnt]$ dd if=/dev/zero of=/mnt/a.txt bs=40M count=2
dd: 写入"/mnt/a.txt" 出错: 超出磁盘限额
记录了2+0 的读入
记录了1+0 的写出
41943040字节(42 MB)已复制,0.0961088 秒,436 MB/秒#限制文件数量
[root@localhost ~]# xfs_quota -x -c "limit -g  isoft=20M ihard=40M yang" /mnt/
5.10 设置限制目录磁盘文件数量和容量
[root@localhost ~]# echo "10:/mnt" >> /etc/projects 
[root@localhost ~]# echo "mymu:10" >> /etc/projid
[root@localhost ~]# xfs_quota -x -c "print" /mnt/
Filesystem          Pathname
/mnt                /dev/sdb1 (uquota, gquota, pquota)
/mnt                /dev/sdb1 (project 10, mymu)#限制目录容量
[root@localhost ~]# xfs_quota -x -c "limit -p bsoft=20M bhard=40M mymu" /mnt/#限制文件数量
[root@localhost ~]# xfs_quota -x -c "limit -p isoft=2 ihard=4 mymu" /mnt/
5.11 修改用户、用户组、目录宽限天数
[root@localhost ~]# xfs_quota -x -c "timer -u -bir 15days" /mnt/
#timer命令的选项
# -u 设置用户配额 -g设置用户组配额 -p设置目录配额 -r实时块限制#表示对宽限时间已经修改为15天
[root@localhost ~]# xfs_quota -x -c "state" /mnt/
Blocks grace time: [15 days]
Inodes grace time: [15 days]
Realtime Blocks grace time: [15 days]
5.12 查看当前SELinux状态
getenforce	#查看当前SELinux
在命令结果中:Enforcing	#SELinux正常运行。Permissive #当前selinux只记录不限制。
[root@localhost ~]# setenforce #改变当前SELinux运行状态。临时生效。
usage:  setenforce [ Enforcing | Permissive | 1 | 0 ]

数据备份

一、哪些数据需要备份

1.linux系统重要数据

root目录、home目录下、etc目录下

2.安装服务的数据

例如apache和mysql

根据自己实际情况进行数据备份

二、备份策略

1.完全备份

把所有需要备份数据全部备份

优点:数据恢复方便

缺点:需要备份的数据量较大、备份时间较长、不可能实现每天备份

2.增量备份

先进行一次完全备份,服务器运行一段时间后,比较当前系统和完全备份数据之间的差别,只备份有差别的数据。

在经过一段时间之后,进行第二次增量备份,第二次增量备份时,当前系统是和第一次增量备份的数据进行比较,也只是备份有差别的数据。第三次增量备份是和第二次增量备份的数据进行比较。

3.差异备份

差异备份也要先进行完全备份,和增量备份不同的是,每次差异备份都是和原始的完全备份不同的数据,总的说每次差异备份的参照物是原始的完全备份,不是上一次的差异备份。

三、备份方法

命令格式:dd if=“输入文件” of=“输出文件” bs=“数据块” count=“数量”

参数:       if:定义输入数据的文件,也可以是输入设备of:定义输出数据的文件,也可以是输出设备bs:指定数据块的大小,也就是定义一次性读取或写入多少字节,默认数据块大小是512字节count:指定bs的数量
操作练习
[root@localhost ~]# dd if=/etc/httpd/conf/httpd.conf of=/tmp/httpd.bark
记录了22+1 的读入
记录了22+1 的写出
11753字节(12 kB)已复制,0.00111368 秒,10.6 MB/秒
#将磁盘备份到tmp目录下
[root@localhost ~]# dd if=/dev/sda1 of=/tmp/boot.bak
记录了1048576+0 的读入
记录了1048576+0 的写出
536870912字节(537 MB)已复制,2.0753 秒,259 MB/秒
[root@localhost ~]# ll -h /tmp/boot.bak 
-rw-r--r--. 1 root root 512M 516 19:46 /tmp/boot.bak
#将tmp的数据恢复到sda1磁盘下
[root@localhost ~]# dd if=/tmp/boot.bak of=/dev/sda1
记录了1048576+0 的读入
记录了1048576+0 的写出
536870912字节(537 MB)已复制,2.59553 秒,207 MB/秒
[root@localhost ~]# 
注意:虽然dd功能命令很强大,但是也有缺点,复制的时间较长(根据服务器性能)

命令格式:scp 起始目录 目标用户名@IP地址:/目录

#上传到192.168.11.132
[root@localhost ~]# scp wangxunce.txt root@192.168.11.132:/root/
root@192.168.11.132's password: 
wangxunce.txt                              100%    0     0.0KB/s   00:00    
[root@192.168.11.132 ~]# ls
anaconda-ks.cfg  wangxunce.txt

xfsdump -f 备份文件存放位置 被备份路径或设备文件

#交互式备份
[root@localhost test]# xfsdump -f /opt/dum_sdb1 /dev/sdb1
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.7 (dump format 3.0) - type ^C for status and control============================= dump label dialog ==============================please enter label for this dump session (timeout in 300 sec)-> dump_sdb1   #指定备份标签
session label entered: "dump_sdb1"--------------------------------- end dialog ---------------------------------xfsdump: level 0 dump of localhost.localdomain:/test
xfsdump: dump date: Fri May 17 04:13:30 2024
xfsdump: session id: 3a2e2971-03b7-4bff-9325-c6f939da0437
xfsdump: session label: "dump_sdb1"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 25856 bytes
xfsdump: /var/lib/xfsdump/inventory created============================= media label dialog =============================please enter label for media in drive 0 (timeout in 300 sec)-> sdb1  #指定设备标签
media label entered: "sdb1"--------------------------------- end dialog ---------------------------------xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 25552 bytes
xfsdump: dump size (non-dir files) : 2592 bytes
xfsdump: dump complete: 21 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dum_sdb1 OK (success)
xfsdump: Dump Status: SUCCESS
[root@localhost test]# 
#非交互式备份
[root@localhost ~]# xfsdump -f /opt/dum_2 /test -L dump_2 -M sdb1
......
xfsdump: dump complete: 0 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /opt/dum_2 OK (success)
xfsdump: Dump Status: SUCCESS
-L:每次备份的session标签
-M:媒体标签,这里写对那个设备进行备份
-s:文件路径 只对指定的文件进行备份,-s指定的时候写的是相对路径[root@localhost ~]# xfsdump -f /opt/dum_linux -s linux /test -L dump_linux -M sdb1
.............
xfsdump: Dump Status: SUCCESS

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

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

相关文章

基于windows通过kind部署轻量级便携式k8s集群

感谢老师的视频教程&#xff1a; 基于windows通过kind部署轻量级便携式k8s集群 wsl windows下的linux wsl --set-default-version 2 wsl --help wsl --list --online wsl --install -d Ubuntu wsl -l -v &#xff08;看看版本是不是2&#xff0c;否则docker那边识别不到&…

从零开始:在线教育系统源码与知识付费小程序开发指南

开发一个功能完善的在线教育系统和知识付费小程序并不是一件简单的事情。今天&#xff0c;小编将从零开始&#xff0c;详细介绍如何开发在线教育系统和知识付费小程序。 一、需求分析与系统设计 在开始编写代码之前&#xff0c;首先需要进行需求分析和系统设计。这一步非常关键…

汽车摄像头智能画质增强解决方案,高品质车载视觉系统

在数字化与智能化浪潮的推动下&#xff0c;汽车行业正经历着一场前所未有的技术革命。其中&#xff0c;车载摄像头作为智能驾驶与安防监控的核心部件&#xff0c;其画质的高低直接关系到行车安全与驾驶体验。美摄科技&#xff0c;作为行业领先的智能图像技术解决方案提供商&…

机器学习圣经PRML作者Bishop推出重磅教材

图1 书籍《Pattern Recognition and Machine Learning》 只要学人工智能的人&#xff0c;必然学机器学习。 只要学机器学习的人&#xff0c;必然看PRML。 PRML为何物&#xff1f; PRML全名《Pattern Recognition and Machine Learning》&#xff0c;一部机器学习领域的内功…

数据库系列之MySQL数据库中内存使用分析

在实际系统环境中&#xff0c;MySQL实例的内存使用随着业务的增长缓慢增长&#xff0c;有些时候并没有及时的释放。本文简要介绍下MySQL数据库中和内存相关的配置&#xff0c;以及分析内存的实际使用情况&#xff0c;以进行应急和调优处理。 1、MySQL内存结构 在MySQL中内存的…

MySQL索引和视图

MySQL索引和视图是关系型数据库MySQL中的两个重要概念。索引用于优化数据库的查询性能&#xff0c;而视图用于提供一个逻辑上的表结构&#xff0c;方便用户查询和操作数据。 索引是一种数据结构&#xff0c;可以加速对数据库表中的数据进行查询的速度。通过创建索引&#xff0…

激光雷达SLAM算法综述

大家好呀&#xff0c;我是一个SLAM方向的在读博士&#xff0c;深知SLAM学习过程一路走来的坎坷&#xff0c;也十分感谢各位大佬的优质文章和源码。随着知识的越来越多&#xff0c;越来越细&#xff0c;我准备整理一个自己的激光SLAM学习笔记专栏&#xff0c;从0带大家快速上手激…

BEVFusion的相机工作流中,图像编码之后FPN+ADP网络的作用

在BEVFusion的相机工作流中&#xff0c;图像编码之后会经过一个FPNADP的网络,那么这个结构的作用是什么呢 FPN大家都很熟悉&#xff0c;就是特征金字塔。但是这里还是贴一些来自GPT的废话 在Bird’s Eye View (BEV) 算法中使用的特征金字塔网络&#xff08;FPN, Feature Pyrami…

视频监控管理平台LntonCVS监控视频汇聚融合云平台主要功能应用场景介绍

随着网络技术的不断发展和万物互联时代的到来&#xff0c;视频融合在一些系统集成项目及综合管理应用中变得日益重要。本文以LntonCVS视频融合云平台为案例&#xff0c;探讨视频融合的对象及其应用场景。 1. 视频监控设备 视频监控摄像设备是各种视频应用项目的基础部分。在视…

【Andoird开发】android获取蓝牙权限,beacon,android-beacon-library

iBeacon 最先是苹果的技术&#xff0c;使用android-beacon-library包可以在android上开发iBeacon 技术。 iBeacon的发明意义重大。它是一种基于蓝牙低功耗&#xff08;Bluetooth Low Energy, BLE&#xff09;技术的定位系统&#xff0c;通过向周围发送信号来标识其位置。这项技…

【NumPy】关于numpy.arange()函数,看这一篇文章就够了

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

AI--构建检索增强生成 (RAG) 应用程序

LLM 所实现的最强大的应用之一是复杂的问答 (Q&A) 聊天机器人。这些应用程序可以回答有关特定源信息的问题。这些应用程序使用一种称为检索增强生成 (RAG) 的技术。 典型的 RAG 应用程序有两个主要组件 索引&#xff1a;从源中提取数据并对其进行索引的管道。这通常在线下…

实时3D云渲染与汽车虚拟仿真的联系

汽车虚拟仿真是指利用计算机技术对汽车进行全方位的模拟&#xff0c;包括车身结构、发动机、转向系统、悬挂系统、制动系统等各个方面&#xff0c;以达到实现汽车设计验证、性能分析、安全评估和驾驶模拟等目的的一种技术手段。现如今&#xff0c;越来越多的汽车制造商采用虚拟…

K8s Service 背后是怎么工作的?

kube-proxy 是 Kubernetes 集群中负责服务发现和负载均衡的组件之一。它是一个网络代理&#xff0c;运行在每个节点上, 用于 service 资源的负载均衡。它有两种模式&#xff1a;iptables 和 ipvs。 iptables iptables 是 Linux 系统中的一个用户空间实用程序&#xff0c;用于…

Kroma宣布推出Spectrum:以太坊Layer-2的先进原生质押服务

Kroma宣布推出备受期待的Spectrum&#xff0c;这是一项先进的原生质押服务&#xff0c;旨在彻底改变以太坊 Layer-2格局。Spectrum将于2024年5月14日开始运营&#xff0c;为用户提供利用质押ETH、stETH和eETH的奖励机会&#xff0c;助力用户在去中心化金融&#xff08;DeFi&…

爆火!开源多模态大模型在手机端进行本地部署!

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、今年参加社招和校招面试的同学。 针对大模型& AIGC 技术趋势、大模型& AIGC 落地项目经验分享、新手如何入门算法岗、该如何准备面试攻略、面试常考点等热门话题进行了…

二叉树遍历操作详解

目录 一、思路详解 1.1 递归思路 1.2 递归分支图 1.3 递归栈帧图 二、C语言实现 2.1 前序遍历 2.2 中序遍历 2.3 后序遍历 三、查找值为x的结点 3.1 递归思路 3.2 C语言代码 一、思路详解 采用递归的思想解决问题&#xff0c;以高度为3的满二叉树为例。 1.1 递归思…

ClickHouse 几年内数据查询及细节

在 ClickHouse 中&#xff0c;查询三年内的时间数据可以使用以下方法&#xff1a; 1. 使用日期函数 可以使用 ClickHouse 支持的日期函数来筛选出三年内的数据。例如&#xff0c;使用 today() 函数获取当天日期&#xff0c;使用 toDate() 函数将日期转换为指定格式&#xff0…

【C++】学习笔记——map和set

文章目录 十五、map和set1. 关联式容器2. set的介绍3. set的使用4. multiset5. map的介绍6. map的使用7. multimap8. map中重载的operator[] 未完待续 十五、map和set 1. 关联式容器 我们已经接触过STL中的部分容器&#xff0c;比如&#xff1a;vector 、list 、deque 等&…

Golang | Leetcode Golang题解之第99题恢复二叉搜索树

题目&#xff1a; 题解&#xff1a; func recoverTree(root *TreeNode) {var x, y, pred, predecessor *TreeNodefor root ! nil {if root.Left ! nil {// predecessor 节点就是当前 root 节点向左走一步&#xff0c;然后一直向右走至无法走为止predecessor root.Leftfor pr…