运维SRE-04 磁盘管理体系

磁盘管理体系详解

磁盘管理系统概述

  • 目标

    • 熟练掌握常用磁盘配置(容量,转速,个数)
    • 熟练说出来或写出来: 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命令
    • 软件仓库
    • 编译安装

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

17.Golang channel的基本定义及使用

目录 概述实践无缓冲 channel代码结果 缓冲 channel代码结果 channel的关闭特点代码结果range代码结果 select channel代码结果 结束 概述 此篇文章介绍 channel 的用法 无缓冲 channel缓冲 channelchannel的关闭特点range channelselect channel 每一种,配上完整…

深入浅出AI落地应用分析:AI个人助手Monica

前言:铺天盖地的大模型以及所谓的应用到目前为止实际还是很少有像Monica这样贴合个人工作习惯的产品落地,比如像Chatgpt等这样的产品,绝大多数人不会专门买🪜翻墙出去用,而且大多数场景下素人或小白都不知道该怎么用,但是Monica这款产品就很好的以浏览器的插件的形式始终…

29 python快速上手

Python操作MySQL和实战 1. 事务1.1 MySQL客户端1.2 Python代码 2. 锁2.1 排它锁2.2 共享锁 3. 数据库连接池4. SQL工具类4.1 单例和方法4.2 上下文管理 5.其他总结 目标:掌握事务和锁以及Python操作MySQL的各种开发必备知识。 概要: 事务锁数据库连接池…

【Oracle云】使用 boto3 访问 OCI 对象存储 (AWS S3协议兼容)

在现代云计算环境中,S3(Simple Storage Service)协议已经成为云对象存储的事实标准。它提供了简单、可扩展、高度耐用的存储解决方案,得到了广泛应用。Oracle Cloud Infrastructure(OCI)秉承着开放性和灵活…

摄像头监控系统/视频监控云平台EasyCVR接入单兵设备后如何配置移动规矩

视频云存储/安防监控EasyCVR视频汇聚平台基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。音视频流媒体视频平台EasyCVR拓展性强,视频能力丰富,具体控可实现视频监控直播、视频轮播、视频录像…

Java编程练习之类的封装

1.把一个Student类封装起来,模拟一个转校生转入新学校后为其制作学生信息的过程。运行结果如下: package zhtestdemo; import java.util.Scanner; import java.text.DecimalFormat; public class demo { //创建类,类名叫demo; private Stud…

CentOS7中安装ElasticSearch

文章目录 检测是否安装了Elasticsearch安装JDK下载java配置 下载Elasticsearch解压安装Elasticsearch修改配置文件启动Elasticsearch常见问题 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasti…

【Ubuntu 18.04 安装截图软件 flameshot 】

安装命令: sudo apt-get install flameshot 使用命令: flameshot gui 创建快捷键:设备->键盘->>输入名字和快捷键 截完图后保存CtrlS,复制到剪贴板 CtrlC ​​​​​​

Altium Designer的学习

PCB设计流程 1.新建空白工程: 创建一个新的工程 新建四个文件,并且保存: 每次打开文件时,打开以.PrjPcb结尾的文件 2.元件符号的创建: 在绘制图形的时候设置成10mil,为了在原理图中显得不那么大。 在绘制引脚的时候设…

【软考问题】-- 6 - 知识精讲 - 项目成本管理

一、基本问题 项目成本管理(预算内完成) 1:成本管理计划 定义:是项目管理计划的组成部分, 描述将如何规划、 安排和控制项目成本。在计划中一般要规定 计量单位精确度:例如 995.59 元取整为 1000元准确度&…

【Qt】—— Qt Creator界⾯认识

目录 (一)左边栏 (二)代码编辑区 (三)UI设计界⾯ (四)构建区 (一)左边栏 在编辑模式下,左边竖排的两个窗⼝叫做"边栏"。 ①是项⽬…

【TCP】三次握手(建立连接)

前言 在网络通信的世界里,可靠传输协议(TCP)扮演着重要的角色,它保证了数据包能够按顺序、完整地从发送端传送到接收端。TCP协议中有一个至关重要的机制——三次握手。这一过程确保了两个TCP设备在开始数据传输之前建立起一个稳定…

数字孪生产品评测:五款数字孪生产品的优劣对比

作为数据可视化领域的资深用户,我深知数字孪生产品在当今工业4.0时代的重要地位。本文将为大家介绍五款市面上的数字孪生产品,帮助大家了解各产品之间的优缺点,选择适合自己的产品。 一、山海鲸可视化 山海鲸可视化是一款强大而灵活的免费数…

C++(map和set)

目录 前言 正文 1.预备知识 1.1序列式容器 1.2关联式容器 1.3键值对 2.set 2.1概念 ​编辑 2.2set的使用 2.3set总结 2.4multiset 3.map 3.1概念 3.2、map的使用 3.3map中operator[] 3.4map总结 3.5multimap 前言 s et 和 map 是 STL 中的容器之一&a…

matlab自定义函数实现图像小波变换

matlab中提供了小波变换函数lwt和ilwt,可以方便地实现提升小波变换。 我们按照小波变换的定义,粗糙地实现一个针对图像的小波变换,如下: % 使用方法: img imread(lena256.bmp); % 假设lena.png是灰度图像 subplot(2…

单细胞转录组数据分析的10大软件/流程

单细胞数据分析现在已经有上千个软件工具可供使用了,这为用户带来便利的同时也造成了选择困难。就像时间一样,一个表,没问题,但如果有两个表,时间还不一样,该信谁的呢? 正好我们前面一篇文章介绍…

Windows10更新失败 错误 0x80070643、KB5034441的解决方法之二

Windows10更新失败 错误 0x80070643、KB5034441 在知乎Windows10更新失败 错误 0x80070643、KB5034441的原因分析和几个解决方法 - 知乎 参考文章进行操作,更详细信息自己看上面链接。 我电脑的硬盘是mbr格式,而且没有划分恢复分区。 Microsoft Windo…

JS(react)图片压缩+图片上传

上传dome var fileNodeTakeStock: any createRef();<inputref{fileNodeTakeStock}onChange{showPictureTakeStock}style{{ display: "none" }}id"fileInpBtn"type"file"accept"image/*" //限制上传格式multiple{false}capture&qu…

C++继承与多态

一&#xff0c;继承 1&#xff0c;继承定义 继承是C三大特性之一。C有类型的复用&#xff1a;类型模板&#xff0c;函数的复用&#xff1a;函数重载。而继承其本质是一种类的复用&#xff0c;使得程序员可以在原有类特性之上进行扩展来产生新的类&#xff0c;原有的类称为父类…

【深度学习】全连接神经网络

全连接神经网络 全连接神经网络的结构 整体结构 神经网络:类似神经元,前一层可以不断地传递给下一层。 神经网络模型由多个单元结构组成。 单元结构 单元结构的数学公式: a = h ( w x + b ) a=h(wx+b) a=h(wx+b) h(x):激活函数 比如sigmoid就是激活函数之一隐藏层大多…