运维SRE-04 磁盘管理体系

news2024/11/15 17:42:13

磁盘管理体系详解

磁盘管理系统概述

  • 目标

    • 熟练掌握常用磁盘配置(容量,转速,个数)
    • 熟练说出来或写出来: raid级别
    • 熟练掌握磁盘基础使用:拿到一块硬盘到可以向硬盘写入数据分区,格式化,挂载
    • 熟练掌握: 磁盘空间不足 no space left on device 故障,原因,排查,解决.
      磁盘基础内容
  • 磁盘基本内容

  • 磁盘Raid(磁盘阵列)

  • 磁盘分区知识点与实战

  • 磁盘格式化,磁盘挂载

  • 磁盘故障案例: 磁盘空间不足 no space left on device

  • 磁盘性能测试

  • 其他补充

磁盘管理基础

1)磁盘分类与接口

  • 磁盘分类:机械硬盘,固态硬盘
  • 磁盘接口:Sata(接口,家用),SAS(接口,企业级),pci-e(固态硬盘,企业,家用)

2)磁盘选型

  • 企业磁盘选型
接口应用场景
sata企业内部使用,存放备份,线下业务(给自己内部人员使用)4T 6T 7.2k转*8
SAS企业标配,线上业务(线上环境,生产环境)使用(提供给用户环境)300g 600g 900g 15k硬盘* 8
固态硬盘访问量大(并发量高),数据量不是很大(架构优化策略:把用户经常访问的数据存放在固态)500g 1tb 2tb *4

3)磁盘内部结构

  • 机械
    • 磁头
    • 盘片
  • 机械硬盘细致结构
    • 磁头:用于读写数据,径向运行(半径),从数字0开始命名.
    • 磁道: 类似于环形跑道,用来存放数据区域
      • 最外面的圈开始是0号磁道.
      • 每个磁道存放的数据量是一样的
    • 扇区: 存放数据最小单位. 默认是512字节
    • 柱面: 不同盘面上,相同的磁道组成形状. 磁盘读写是以柱面为单位进行的

4)机械 VS 固态
在这里插入图片描述

RAID

1)概述

  • 磁盘冗余阵列

  • 物理服务器的硬盘,通过raid管理,才能使用

  • 使用raid优势(好处)

    • 可以获取更高容量
    • 可以获取更高性能(读写速度 io)
    • 可以获取更高的冗余(安全性)

3)raid级别

  • raid:raid管理磁盘具体方式
  • 常见的raid级别:raid 0,raid1,raid5,raid10
至少几块硬盘容量冗余性能使用场景举例
raid 01所有硬盘容量综合最低,没有冗余最快不要求安全,只要求速度数据库从库
存储从库
web服务器
raid 12块硬盘(制作的时候,1次只能给2块硬盘做raid1)一半冗余100%写入性能较慢,读取类似于单块硬盘只追求安全性,对于速度没系统盘,监控服务器
raid 5至少3块硬盘损失n-1(n>=3)损坏1块读取性能还可以,写入较慢对于速度安全要求不高普遍数据库,存储访问量不高
raid 10至少4块硬盘一半损坏1半,但不能在一个组里读写性能比较强悍对于安全和性能都要高并发或高访问量数据库主库,存储

4)未来应用

  • 物理服务器需要配置raid
  • 物理服务器拿到手
    • 拆开包装
    • 上架
    • 上电
    • 配网
    • 配置远程控制卡
    • 配置raid
    • 安装系统(光盘,U盘,pxe)
    • 创建磁盘分区
    • 选择软件包
    • 安装完成
    • 部署环境

磁盘分区

1)磁盘分区概述

  • 磁盘的第一个扇区:0磁头(盘面)0磁道1个扇区512字节
  • MBR 磁盘的引导程序(主引导记录):引导系统启动;
  • 分区表:存放分区开始结束信息
  • 主分区:最多有4个,每个占用16字节分区表空间
  • 扩展分区:
    • 主要用来解决主分区最多4个
    • 主分区无法直接存放数据与使用
    • 如果要使用需要在扩展分区中创建逻辑分区
    • 扩展分区在一个磁盘只有1个
  • 逻辑分区
    • 需要先创建扩展分区
    • 使用逻辑分区存放数据

3)Linux系统磁盘及分区命名规则

[root@hb-sre-001 ~]# ll /dev/sda*
brw-rw----. 1 root disk 8, 0 8月   1 00:50 /dev/sda
brw-rw----. 1 root disk 8, 1 8月   1 00:50 /dev/sda1
brw-rw----. 1 root disk 8, 2 8月   1 00:50 /dev/sda2

#Linux系统磁盘名字的命名规则
sata/sas/pci-e   接口的硬盘
/dev/sd? 开头
##云服务器
/dev/vd? 开头

## 第1块硬盘
/dev/sda
## 第2块硬盘
/dev/sdb

#Linux系统磁盘分区名字的命名规则

#主分区或扩展分区 1-4
/dev/sda1-4

#逻辑分区从5开始
/dev/sda5

#第3块sata硬盘的第1个主分区
/dev/sdc1

#第4块sas硬盘的第2个逻辑分区
/dev/sdd6


4)MBR VS GPT

  • MBR主引导记录,磁盘分区格式
  • 磁盘大小不能大于2tb,如果大于2tb则无法使用.

  • GPT分区表格式,解决问题.
  • 解决系统支持大硬盘的问题.
  • 主分区随便用,不用区分主分区,扩展分区逻辑分区.
MBR VS GPT支持主分区数量支持的硬盘大小磁盘分区命令
MBR支持的主分区+扩展分区最多4个小于2T硬盘
GPT可以理解为无线可以各种容量的磁盘parted/gdisk 支持GPT和MBR

5)磁盘分区-fdisk

#01 查看磁盘信息
[root@hb-sre-001 ~]# fdisk -l |grep '/dev/sd[a-c]'
磁盘 /dev/sda:21.5 GB, 21474836480 字节,41943040 个扇区
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    41943039    19921920   8e  Linux LVM
磁盘 /dev/sdb:106 MB, 106954752 字节,208896 个扇区
磁盘 /dev/sdc:106 MB, 106954752 字节,208896 个扇区

#02 对/dev/sdb进行分区
[root@hb-sre-001 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x9e228625 创建新的 DOS 磁盘标签。

#03 fdisk 磁盘分区命令详解
p (print)  显示当前磁盘分区信息.
n	(new)	创建磁盘分区.
d (delete) 删除分区.
q (quit) 退出不保存.
w (write) 保存并退出. 让磁盘分区生效.

#03 案例01 在/dev/sdb中创建1个10mb的磁盘分区
fdisk /dev/sdb
n #创建分区
Partition type: # 请选择分区类型
   p   primary # 主分区 (0 primary, 0 extended, 4 free)
   e   extended # 扩展分区
Select (default p):
Select (default p): p  
分区号 (1-4,默认 1):1
起始 扇区 (2048-208895,默认为 2048):# 磁盘分区的第1个扇区是从哪里开始
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-208895,默认为 208895):# 磁盘分区到哪里结束
Last 扇区, +扇区 or +size{K,M,G} (2048-208895,默认为 208895):+10M
分区 1 已设置为 Linux 类型,大小设为 10 MiB

命令(输入 m 获取帮助):w

[root@hb-sre-001 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):p

磁盘 /dev/sdb:106 MB, 106954752 字节,208896 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x9e228625

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048       22527       10240   83  Linux



6)磁盘分区-parted

  • /dev/sdc
##01 查看所有磁盘信息
parted -l

##02 进入磁盘
p

##03 创建磁盘分区表
mktable gpt ## mklabel 也行     gpt格式 :mktable gpt mbr格式: mktable msdos

##04 创建磁盘分区
(parted) mkpart primary 0 #(开始) 10(10MB)
警告: The resulting partition is not properly aligned for best performance.
忽略/Ignore/放弃/Cancel? Ignore                                           
(parted) p                                                                
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 107MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     标志
 1      17.4kB  10.0MB  9983kB               primary

##05 删除分区
(parted) rm  6      

##06 退出
q (quit) #退出  

7)磁盘分区指令小结

  • fdisk mbr 磁盘不能大于2tb
  • parted mbr(msdos),gpt 都支持 2tb以上。
  • gdisk 用法与fdisk一致。仅支持gpt格式,大于2tb硬盘。

磁盘使用全流程

1)磁盘使用流程概述:

  • 一般流程:
    • 1 磁盘分区
    • 2 格式化(创建文件系统)
    • 3 挂载

2)磁盘使用流程实战

#对 /dev/sdb 创建1个分区,使用全部空间,挂载到/mnt目录.
##01 磁盘分区
[root@hb-sre-001 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-208895,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-208895,默认为 208895):
将使用默认值 208895
分区 1 已设置为 Linux 类型,大小设为 101 MiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。

##02 格式化
## 创建文件系统
mkfs.xfs /dev/sdb1


##03 挂载
linux下面,设备(磁盘,磁盘分区,光盘) 不挂载无法使用,挂载给设备设置入口.    
入口叫做挂载点.   挂载点是目录.   
/mnt linux 临时挂载点
给/dev/sdb1 设置挂载点 为/mnt
[root@hb-sre-001 mnt]# mount /dev/sdb1 /mnt
[root@hb-sre-001 mnt]# df -h
文件系统                 容量  已用  可用 已用% 挂载点
devtmpfs                 898M     0  898M    0% /dev
tmpfs                    910M     0  910M    0% /dev/shm
tmpfs                    910M  9.7M  901M    2% /run
tmpfs                    910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root   17G  6.1G   11G   36% /
/dev/sda1               1014M  151M  864M   15% /boot
tmpfs                    182M     0  182M    0% /run/user/0
/dev/sdb1                 98M  5.3M   93M    6% /mnt

挂载生效问题
mount /dev/sdb1 /mnt	# 临时挂载,重启Liunx后挂载失效
永久挂载?
/data  # 新目录
两种方法.
卸载分区
umount /mnt umount #挂载点
挂载生效问题
  • 目标:掌握磁盘永久挂载方法
    a) 修改/etc/rc.local
    存放的命令,脚本会在开机的时候自动运行.
    第1次使用,需要给 /etc/rc.d/rc.local 加上执行权限.
    chmod +x /etc/rc.d/rc
#mount /dev/sdb1   /data  填上rc.local里

b)修改/etc/fstab

  • fstab开机自动挂载配置文件
# 命令blkid可以看uuid
# fstab格式
/dev/mapper/centos_oldboy--81--golden-root /                       xfs     defaults        0 0
UUID=9bd35a90-452f-4179-b123-183ee2e5a61c /boot                   xfs     defaults        0 0
/dev/mapper/centos_oldboy--81--golden-home /home                   xfs     defaults        0 0
/dev/mapper/centos_oldboy--81--golden-swap swap                   swap   defaults        0 0
配置一共是6列.
#
#/dev/sdb1 /data xfs     defaults    0 0

在这里插入图片描述

  1. 小结
  • 磁盘使用三部曲: 分区,格式化,挂载
  • 命令:fdisk/parted/gdisk, mkfs.xfs ,mount/umount
  • 永久挂载: /etc/rc.local /etc/fstab

磁盘企业级分区方案

  • 新安装的系统如何划分分区及配置容量

1)物理机

#磁盘分区方案 01 通用 运行不太重要的环境,没有用户数据。
/boot 分区   #用于引导系统启动,linux内核文件。         1G即可(如果需要升级linux内核) (200MB)
swap 分区   #内存不足的时候,swap空间临时充当内存使用。  
             #内存小于8G swap 可以给内存的1.5倍或2倍。 最大控制在8-16G
             #内存大于8G swap 给8G 8-16G
             
             #在一些生产环境中为了极致的速度、性能。会关闭swap. 温馨提示:云服务器默认没有swap.
/     分区    #剩余多少给多少。
#磁盘分区方案 02 通用 有重要数据的时候
/boot 分区   #用于引导系统启动,linux内核文件。         1G即可(如果需要升级linux内核) (200MB)
swap 分区   #内存不足的时候,swap空间临时充当内存使用。  
             #内存小于8G swap 可以给内存的1.5倍或2倍。 最大控制在8-16G
             #内存大于8G swap 给8G 8-16G
             
             #在一些生产环境中为了极致的速度、性能。会关闭swap. 温馨提示:云服务器默认没有swap.
             
/     分区   根分区40-100G 
/data 数据分区 重要数据放在/data 目录、分区中。
#磁盘分区方案 03 不知道是否有重要数据。
/boot 分区   #用于引导系统启动,linux内核文件。         1G即可(如果需要升级linux内核) (200MB)
swap 分区   #内存不足的时候,swap空间临时充当内存使用。  
             #内存小于8G swap 可以给内存的1.5倍或2倍。 最大控制在8-16G
             #内存大于8G swap 给8G 8-16G
             
             #在一些生产环境中为了极致的速度、性能。会关闭swap. 温馨提示:云服务器默认没有swap.
             
/     分区   根分区40-100G 
剩余空间暂不分配,未来谁使用谁分配。
  1. 云服务器
  • 根据需求,规划好。所需要的磁盘空间。
  • 如果后期添加,扩容云服务器都很方便。
/     系统分区 根分区 40-100G   /dev/vda 
/data 数据分区 数据分区 不限制。

磁盘故障案例-磁盘空间不足案例no space left on device

  • 导致磁盘空间不足的原因:

1)因为大文件

  1. 如何模拟
  2. 如何排查
  3. 如何解决
#01 模拟
dd  if=/dev/zero  of=/usr/local/big     bs=1M  count=5000
dd 创建指定大小文件
   if input file 输入文件.
   of output file 输出文件.
   bs block size 每次读取多少.
   count         次数.
    
   bs * count就是文件大小.
   
#02 排查
- 目标:定位大文件在哪里,在哪个目录,是什么文件名字.
整体查看下:是哪里磁盘空间不足(哪个分区)
根据有问题的分区,详细,一层一层排查,排查到具体目录或文件.
#整体查看下:是哪里磁盘空间不足(哪个分区)
df -h
#根据有问题的分区,详细,一层一层排查,排查到具体目录或文件.
du -sh /*

[root@oldboy81-golden-lnb ~]# du -sh /* |grep G
6.5G /usr
du -sh /* |sort -hr  # sort -hr以人类读形式进行排序. 
#01 发现/分区占用空间大.
du -sh /* |sort -hr
#02 发现 /usr/目录占用空间大.
du -sh /usr/* |sort -hr
#03 发现 /usr/local/ 占用空间大
du -sh /usr/local/* |sort -hr
#04 最终找到 大文件 //usr/local/big 
[root@oldboy81-golden-lnb ~]# du -sh /usr/local/* |sort -hr
4.9G /usr/local/big

#05 确认文件是否重要,确认是否可以删除

今日核心:

  • 磁盘分区格式化与挂载
  • 永久挂载
  • 磁盘分区方案
  • 磁盘故障案例-磁盘空间不足案例 no space left on device

2)因为inode用光导致磁盘空间不足

  • 原理:

    • inode存放文件属性信息,inode数量是在格式化后固定
    • 如果耗尽也会提示磁盘空间不足no space left on device
  • 解决:

    • 删除,大量小文件。
  • 小结:

    • 排查inode导致的磁盘空间不足
    • 排查流程:
      • df -h;然后看下df -i inode使用情况;
      • 如何查找有大量小文件的目录。找系统中目录大小大于1MB即可,find / -type d -size +1M
      • 精确到具体问题的目录,看看内容,确认是否删除
    • 模拟故障作为熟悉项目

3)因为文件没有被彻底删除导致的磁盘空间不足

  • 文件删除原理:
    • 没有入口了(硬连接数为0,rm删除)
    • 这个文件没有任何调用(服务软件/命令)
#排查
df -h       #磁盘满了
du -sh /*  #计算,发现没满.
基本是文件未被彻底删除导致的故障.
lsof |grep delete #即可 lsof 显示系统中所有被打开的文件.
                  #delete表示文件没有入口,进程调用数不为0
yum install -y lsof
#解决
重启或关闭对应服务/进程.

4)小结

  • 原理:文件被彻底删除原理(文件删除原理)
  • 故障:
    • 现象:df -h 磁盘满,du -sh 磁盘没满。怀疑文件未彻底删除导致的故障
    • 排查:df -h,du -sh ;lsof |grep delete
    • 解决:找出占用文件的服务/进程,重启。

磁盘空间不足案例总结

磁盘空间不足原因现象排查解决
常规大文件(大量文件) block不足.创建文件或使用服务
报错提示磁盘空间不足no space left on device
df -h ; du -sh 一层一层排查.最终精确到文件或目录.确认后删除
大量inode使用,inode不足.创建文件后提示磁盘空间不足.df -h磁盘没满df -i ; 哪个分区inode满了.
使用find找分区中大于1MB目录.
确认后删除目录中大量小文件.
文件未彻底删除导致的磁盘空间不足.提示磁盘空间不足. df -h 真的不足. du -sh看还有剩余.lsofgrep delete
待讲解 to be continued

磁盘管理体系之swap

swap概述
  • swap交换分区,内存不足的时候临时充当内存
swap手动创建
  • 目录:熟练掌握手动创建swap方法

1)案例01 通过dd创建swap并添加到系统中

#01 dd创建500MB文件
dd if=/dev/zero of=/tmp/500mb bs=1M count=500
#02 500MB文件成为swap(创建文件系统)
mkswap /tmp/500mb
#03 激活swap(让它加入系统)(挂载)
chmod 600 /tmp/500mb
swapon /tmp/500mb
#04 永久生效
01) 方法01 /etc/rc.local  
swapon /tmp/500mb
02) 方法02 /etc/fstab  
/dev/mapper/centos_oldboy--81--golden-swap swap                   swap   defaults        0 0
#/tmp/500mb
UUID=756762b6-a234-4b59-999f-1e5efaa54a1d   swap                   swap   defaults        0 0

#05 关闭swap
swapoff

2)案例02 通过创建磁盘分区创建swap

#01 fdisk parted进行分区
#02 500mb文件成为swap(创建文件系统)
mkswap /dev/sdc1
#03 激活swap(让它加入系统)(挂载)
swapon /dev/sdc1
swapon -s
应用场景及建议
  • 建议高并发,内存足够的时候,可以不开启swap
  • 对于其他场景,不确定,就可以创建些swap
企业故障案例:
  • 背景:企业生产环境运行java程序,突然发现大量占用swap
  • 如何处理:
    • 临时增加swap,防止系统宕机
    • 后续根据日志,软件日志排查原因
  • 结果:
    • 分析日志,找出原因

磁盘管理体系之性能测试

磁盘核心性能指标
磁盘关键性能指标
随机的读写次数(iops)io读写per seconde磁盘每秒的读写次数(小文件测试)
吞吐量连续读写速度磁盘最大读写速度(大文件测试)
延迟(随机读写延迟)
容量硬盘/磁盘容量
测试
# dd
# fio(连续读写,随机读写,读写延迟)

#测试顺序读
fio -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting
-filename=/dev/sda -name=Read_PPS_Testing
#测试顺序写
fio -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=1024k -size=1G -numjobs=1 -runtime=1000 -group_reporting
-filename=/dev/sda  -name=Write_PPS_Testing
#测试随机读 iops
fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -
group_reporting -filename=/dev/sda -name=Rand_Read_Testing
#测试随机写  
fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -numjobs=1 -runtime=1000 -
group_reporting -filename=/dev/sda -name=Rand_Write_Testing
#测试延迟 随机读
fio -direct=1 -iodepth=1 -rw=randread -ioengine=libaio -bs=4k -size=1G -numjobs=1 -group_reporting -
filename=/dev/sda -name=Rand_Read_Latency_Testing

更多测试参考[https://help.aliyun.com/zh/ecs/user-guide/test-the-performance-of-block-storage-devices]

磁盘管理体系之文件系统

  • 目标:认识文件系统即可,认识常见系统的默认文件系统

  • 文件系统:组织和存放磁盘中文件的方式

  • Linux

    • XFS(Centos 7默认的文件系统)
    • EXT4(Centos 6及之前的文件系统)
    • EXT3(Centos 5.x)
    • EXT2(裸奔状态文件系统)
    • Btrfs(小文件)
  • Windows:

    • Fat32
    • NTFS

磁盘管理体系-总结

  • 磁盘选型
  • Raid级别
  • Raid应用场景
  • 磁盘分区:fdisk/parted/gdisk进行分区即可
  • 磁盘分区格式化挂载
  • 永久挂载(当前及重启后都生效)
    • /etc/rc.local
    • /etc/fstab(每一列的含义)
  • 磁盘分区方案
  • 故障案例:磁盘空间不足故障案例,原因,排查,解决
  • 故障案例:企业生产环境运行java程序(Tomcat)软件,突然发现大量占用swap。需要临时添加swap
  • 添加swap
  • 磁盘性能衡量指标:容量,吞吐量(顺序读写),iops,延迟 dd,fio
  • 文件系统(了解)
  • 软件包管理体系:
    • 软件包安装与管理方式
    • rpm命令
    • yum命令
    • 软件仓库
    • 编译安装

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

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

相关文章

Spring Boot 中操作 Bean 的生命周期

1.InitializingBean和DisposableBean InitializingBean接口提供了afterPropertiesSet方法,用于在bean的属性设置好之后调用; DisposableBean接口提供了destroy方法,用于在bean销毁之后调用; public class TestComponent implem…

基于微服务的高考志愿智能辅助决策系统(附源码)

目录 一.引言 1、编写目的 2、系统功能概述 二.功能分析 三.微服务模块 1、微服务用户相关模块 (1)用户注册 (2)用户登录 (3)用户信息管理 (4)用户操作 2、微服务文件云存…

政安晨的机器学习笔记——跟着演练快速理解TensorFlow(适合新手入门)

准备工作 本笔记是假设您已经安装了Windows系统或Ubuntu系统的Anaconda(或 Miniconda)、Jupyter Notebook、TensorFLow,稍微了解Python语言,并可以进行一点点操作的基础上进行的。 如果您还不具备这个条件,去…

Android进阶之路 - ViewPager2 比 ViewPager 强在哪?

我记得前年(2022)面试的时候有被问到 ViewPager 和 ViewPager2 有什么区别?当时因为之前工作一直在开发售货机相关的项目,使用的技术要求并不高,所以一直没去了解过 ViewPager2~ 去年的时候正好有相关的功能需求&#…

安卓线性布局LinearLayout

<?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:layout_width"match_parent"android:…

关于谷歌新版调试用具(Chrome Dev Tool ),网络选项(chrome-network)默认开启下拉模式的设置

今天在使用谷歌浏览器进行调试的时候&#xff0c;打开调试工具网络选项发现过滤不同模式的选项卡不见了&#xff0c;转而变成一个下拉式选项&#xff0c;如下图 这样一来使得切换不同类型查看的时候变得非常不方便&#xff0c;然后网上查了一下发现这个功能谷歌在很早版本就已…

如果我要访问一个网址,那么在网络中会有哪些过程

访问一个网址是我们日常网络使用中非常常见的操作&#xff0c;背后涉及到一系列精密而复杂的步骤。这个过程包括DNS解析、建立TCP连接、发起HTTP请求、服务器处理请求、服务器响应、浏览器渲染等环节。在这篇文章中&#xff0c;我们将深入探讨这些步骤&#xff0c;并解释它们在…

Windows Server 2025 Azure Arc 介绍

Azure Arc 是一个扩展 Azure 平台的桥梁&#xff0c;可帮助你构建可灵活地跨数据中心、边缘和多云环境运行的应用程序和服务。使用一致的开发、操作和安全模型来开发云原生应用程序。 Azure Arc 可在新的和现有的硬件、虚拟化和 Kubernetes 平台、物联网设备和集成系统上运行。…

web应用课——(第四讲:中期项目——拳皇)

代码AC Git地址&#xff1a;拳皇——AC Git链接

DataX介绍

一、介绍 DataX 是一个异构数据源离线同步工具&#xff0c;致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。 github地址 详细文档 操作手册 支持数据框架如下&#xff1a; 架构 Reader&#xff1…

LLM 推理优化探微 (1) :Transformer 解码器的推理过程详解

编者按&#xff1a;随着 LLM 赋能越来越多需要实时决策和响应的应用场景&#xff0c;以及用户体验不佳、成本过高、资源受限等问题的出现&#xff0c;大模型高效推理已成为一个重要的研究课题。为此&#xff0c;Baihai IDP 推出 Pierre Lienhart 的系列文章&#xff0c;从多个维…

2024年小年是哪一天?小年习俗记到手机便签

随着春节的临近&#xff0c;我们即将迎来一个重要的传统节日——“小年”。那么2024年小年是哪一天呢&#xff1f;关于2024年小年的具体日期&#xff0c;地域不同&#xff0c;节日时间有所不同。在北方&#xff0c;小年通常是在腊月二十三&#xff0c;即2月2日&#xff1b;而在…

locust--python实现的分布式性能测试工具

1.locust特点&#xff1a; 1.1 支持Python编写测试用例方案&#xff1b; 1.2 使用requests发送http请求&#xff1b; 1.3 使用协程实现&#xff0c;高并发时消耗更低&#xff1b; 1.4 使用Flask提供 Web UI&#xff1b; 1.5 有第三方插件支持扩展&#xff1b; 2.创建locust 性能…

【MySQL】学习并使用聚合函数和DQL进行分组查询

&#x1f308;个人主页: Aileen_0v0 &#x1f525;热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 ​&#x1f4ab;个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-t8K8tl6eNwqdFmcD {font-family:"trebuchet ms",verdana,arial,sans-serif;font-siz…

canvas自定义扩展方法:文字自动换行

查看专栏目录 canvas实例应用100专栏&#xff0c;提供canvas的基础知识&#xff0c;高级动画&#xff0c;相关应用扩展等信息。canvas作为html的一部分&#xff0c;是图像图标地图可视化的一个重要的基础&#xff0c;学好了canvas&#xff0c;在其他的一些应用上将会起到非常重…

15. 三数之和(力扣LeetCode)

文章目录 15. 三数之和题目描述双指针去重逻辑的思考a的去重b与c的去重 15. 三数之和 题目描述 给你一个整数数组 nums &#xff0c;判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k &#xff0c;同时还满足 nums[i] nums[j] nums[k] 0 。请 …

hbuilderx uniapp运行到真机控制台显示手机端调试基座版本号1.0.0,调用uni.share提示打包时未添加share模块

记录一个困扰了几天的一个蠢问题&#xff0c;发现真相的我又气又笑。 由于刚开始接触uniapp 移动端开发&#xff0c;有个需求需要使用uni.share API&#xff0c;但是我运行项目老提示打包时没配置share模块 我确实没在manifest内配置。网上搜了一些资料&#xff0c;但是我看官…

MySQL判断两个时间段是否重合

前提 新增的数据不能和数据库的时间有重合部分。 如图&#xff0c;4种重合情况和2种不重合情况。 时间段 a&#xff0c;b 数据库字段 start_time&#xff0c;end_time 第一种写法 列举每一种重合的情况&#xff1a; SELECT * FROM table WHERE(start_time > a and en…

大数据开发之离线数仓项目(用户行为采集平台)(可面试使用)

第 1 章&#xff1a;数据仓库概念 数据仓库&#xff0c;是为企业指定决策&#xff0c;提供数据支持的&#xff0c;可以帮助企业&#xff0c;改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等。 业务数据&#xff1a…

写静态页面——粘性定位练习

0、效果&#xff1a; 1、HTML代码&#xff1a;为了简洁采用内部样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"…