当前位置: 首页 > news >正文

828华为云征文 | 利用FIO工具测试Flexus云服务器X实例存储性能

目录

一、Flexus云服务器X实例概要

1.1 Flexus云服务器X实例摘要

1.2 产品特点

1.3 存储方面性能

1.4 测评服务器规格

二、FIO工具

2.1 安装部署FIO

2.2 主要性能指标概要

三、进行压测

3.1 测试全盘随机读IO延迟

3.2 测试全盘随机写IO延迟

3.3 测试随机读IOPS

3.4 测试随机写IOPS


一、Flexus云服务器X实例概要

Flexus云服务器X实例是华为云推出的一款面向中小企业和开发者的柔性算力云服务器。这款服务器的主要特点是其灵活的vCPU内存配比,支持热变配不中断业务变更规格,以及能够智能感知业务负载并自动调整资源配置,如下图。

1.1 Flexus云服务器X实例摘要

Flexus云服务器X实例的设计理念是提供一个更加灵活和高效的计算资源管理方式。其通过智能调整资源配置,能够更好地满足不同业务的需求,提高资源利用率。此外,该实例还提供了丰富的公共镜像供用户选择,方便快速部署各种应用和服务。用户还可以根据自己的需要灵活调整虚拟CPU和内存的配比,以满足不同场景的需求。

1.2 产品特点

除了之前提到的灵活的vCPU内存配比、支持热变配、智能感知业务负载以及出色的存储性能外,Flexus云服务器X实例的产品特点还包括以下几个方面:

  1. 高性能与成本优化
    • Flexus X实例通过X-Turbo加速技术,实现了性能上的显著提升,为用户带来了倍增的性能体验。
    • 该实例提供了经济型的价格和近乎旗舰级的性能,实现了跃级体验,同时降低了算力成本。
  2. 广泛的应用场景
    • Flexus X实例覆盖了高科技、零售、金融、游戏等多个行业的大多数通用工作负载场景,包括网络应用、数据库、虚拟桌面、分析索引、微服务、CI/CD等。
    • 它能够满足多样化的业务需求,为中小企业和开发者提供即开即用、超快部署的云计算解决方案。
  3. 安全性与可靠性
    • Flexus X实例拥有华为云旗舰级云服务器产品相同的单AZ 99.975%可用性,跨AZ 99.995%可用性,确保了服务的高可靠性。
    • 该实例还提供了智能识别和全面的安全防护技术,确保提供智能化且安全的云服务。
  4. 易用性与维护性
    • Flexus X实例内置了丰富的解决方案与镜像,支持零门槛快速搭建业务环境,轻松启动和管理业务。
    • 用户可以通过简单的配置和购买流程,快速上手并使用该实例。
  5. 灵活的计费模式
    • Flexus X实例支持包年/包月和按需计费等多种计费模式,用户可以根据自己的业务需求选择合适的计费方式。

官网如下图:

1.3 存储方面性能

Flexus云服务器X实例在存储方面表现出色。它支持多种存储类型,包括系统盘和数据盘,且系统盘为通用型SSD,确保了数据读写的高速性和稳定性。用户可以根据自己的业务需求选择合适的存储类型和容量。此外,该实例还支持快照和备份功能,确保数据的安全性和可恢复性。在数据处理和存储方面,Flexus云服务器X实例满足了现代企业对高性能和高可靠性的要求。

Flexus云服务器X实例以其灵活的资源配置、高效的计算性能和可靠的存储能力,成为了中小企业和开发者的优选云服务器产品。

接下来,我们就利用FIO工具来测试一下Flexus云服务器X实例在存储方面的性能怎么样,主要从IOPS,IO延迟、IOPS和吞吐量等方面进行测试。

1.4 测评服务器规格

序号规格名规格参数
1实例名称flexusx-154d
2区域华北-北京四
3可用区可用区7
4vCPUs4核
5内存(GiB)12G
6系统盘通用型SSD(100G)
7镜像CentOS 7.5 64bit
8操作系统类型Linux
9带宽类型独享
10带宽大小3Mbit/s

二、FIO工具

FIO(Flexible I/O Tester)是一款开源的磁盘I/O性能测试工具,旨在提供一种全方面的测试方案,能够模拟常见的I/O场景,并记录和评估存储系统(如硬盘、固态硬盘、网络存储等)在不同负载条件下的输入/输出(I/O)性能。该工具广泛应用于标准测试、QA(质量保证)、验证测试等领域,并支持多种操作系统,如Linux、FreeBSD、NetBSD、OS X、OpenSolaris、AIX、HP-UX、Windows等。对于存储性能的测试,首选就是FIO。在本次测评中测试示例均使用fio jobfile方式,即通过一个job文件来描述待访真的IO负载,一个job文件可以控制产生任意数目的线程和文件,典型的job文件包含一个global段(定义共享参数)和一个或多少job段(描述具体要产生的job)。

2.1 安装部署FIO

其下载地址:https://brick.kernel.dk/snaps/fio-2.1.10.tar.gz

或者登录其官网:http://freshmeat.sourceforge.net/projects/fio/ 进行下载。但是官网很难找得到入口在哪,还是直接访问第一个链接就可以下载了。

接下来我们上传到服务器中,还是老规矩,我们使用cloudshell远程登陆我们的服务器。接下来我们将刚刚下载的FIO压缩包上传到服务器的opt目录下:如下图所示:

OK ,我们输入ls命令看看是否上传成功。

可以看得到,我们的安装包已经上传进去了,右侧文件管理器也有该压缩包。接下来我们解压安装:

执行以下命令解压缩安装包到我们的/usr/local目录下:

tar -zxvf fio-2.1.10.tar.gz -C /usr/local

注意:这里最好是先安装好下面两个依赖再执行,上面的安装命令,这里我忘记了,因此还要重新编译fio 

按顺序执行以下命令进行安装:

cd /usr/local/fio-2.1.10

./configure

make

make install 

OK,到这里我们就基本安装完成了,然后使用fio -v命令查看一下版本看看是否安装好:

因为fio还需要libaio依赖,然后依次执行以下命令,安装libaio:

sudo yum -y install libaio

sudo yum -y install libaio-devel

注意:这里最好是先安装好上面两个依赖再执行,上面的安装命令,这里我忘记了,因此还要重新编译fio 

可以看到我们已经安装好了。 

2.2 主要性能指标概要

下列这些都是服务器关于存储性能的相关指标

  1. IOPS(Input/Output Operations Per Second)
    • 定义:每秒的输入输出操作次数,是衡量存储设备性能的重要指标之一。
    • 重要性:IOPS越高,表示存储设备在单位时间内能够处理的I/O操作越多,性能越好。
  2. 吞吐量(Throughput)
    • 定义:存储设备在单位时间内传输的数据量。
    • 重要性:吞吐量越大,表示存储设备的数据传输速度越快,性能越好。
  3. 延迟(Latency)
    • 定义:I/O操作的响应时间,即从发出I/O请求到接收到响应的时间。
    • 重要性:延迟越小,表示存储设备的响应速度越快,用户体验越好。
  4. CPU利用率
    • 定义:在执行I/O操作时,CPU的使用率。
    • 重要性:CPU利用率反映了I/O操作对系统资源的占用情况,过高的CPU利用率可能导致系统性能下降。
  5. I/O深度
    • 定义:并发发出的I/O请求数,也称为队列深度。
    • 重要性:I/O深度越大,表示存储设备能够同时处理的I/O请求越多,可能提高系统的吞吐量。
  6. 读写块大小
    • 定义:每次I/O操作传输的数据块大小。
    • 重要性:读写块大小对存储设备的性能有显著影响,不同的块大小可能导致不同的IOPS和吞吐量。

三、进行压测

不过在测试之前,我们需要执行以下命令查看存储设备是否已经4KiB对齐。如果不是4KiB对齐,则对性能影响较大。
fdisk -lu
如果返回的Start值能够被8整除则表示4KiB对齐。

可以看得到,我们这里的start值为2048,2048%4 = 0是合适的。 

执行以下命令,切换路径。
cd /tmp

3.1 测试全盘随机读IO延迟

创建job_file文件测试随机读的IO延迟,文件内容如下。创建后,执行命令fio job_file查看测试结果。

[global]
ioengine=libaio
userspace_reap
runtime=60
direct=1
group_reporting
randrepeat=0
norandommap
ramp_time=6
iodepth=1
numjobs=1
exitall
[randread4k]
filename=/dev/vda1
rw=randread
bs=4K

这个测试结果是通过 fio 工具进行的随机读取测试,具体是针对4KB大小的块进行的。以下是对测试结果的详细解读:

性能指标

  • 总读取量:1222.1MB
  • 带宽:20870KB/s(平均)
  • IOPS:5217(每秒输入输出操作数)

延迟统计

  • 服务时间(slat):平均2.93微秒,标准差1.08微秒
  • 完成时间(clat):平均188.30微秒,标准差129.33微秒
  • 总延迟(lat):平均191.30微秒,标准差129.34微秒
  • 完成时间百分位数
    • 1%:137微秒
    • 5%:143微秒
    • 10%:149微秒
    • ...
    • 99.99%:5088微秒(即5.088毫秒)

带宽分布

  • 最小带宽:0KB/s
  • 最大带宽:22184KB/s
  • 99.25%的时间内,带宽在20712.93KB/s左右

延迟分布

  • 250微秒以内:89.49%
  • 500微秒以内:99.46%(包括250微秒以内的)
  • 1毫秒以内:99.60%(包括500微秒以内的)
  • 2毫秒以内:99.73%(包括1毫秒以内的)
  • ...

CPU使用情况

  • 用户态CPU使用率:0.92%
  • 系统态CPU使用率:3.05%

IO深度与提交/完成状态

  • 所有IO操作都在IO深度为1时完成
  • 提交和完成操作都集中在4个块大小(即16KB)的批次上

磁盘统计

  • vda(虚拟磁盘设备):
    • 读取IO操作数:343976
    • 写入IO操作数:43(很少,可能是元数据或后台操作)
    • 合并读取操作:0(没有合并)
    • 合并写入操作:29(有一些合并)
    • 队列中时间:64388个ticks(表示磁盘忙碌程度)
    • 磁盘利用率:99.90%

总结

这个测试结果表明,在随机读取4KB块的情况下,系统能够达到约20870KB/s的带宽和5217 IOPS的性能。延迟方面,大部分读取操作在250微秒以内完成,99.99%的读取操作在5毫秒以内完成。CPU使用率相对较低,表明测试期间CPU不是瓶颈。磁盘利用率非常高,接近100%,说明磁盘在测试期间几乎一直在忙碌。

3.2 测试全盘随机写IO延迟

创建job_file文件测试随机读的IO延迟,文件内容如下。创建后,执行命令fio job_file查看测试结果。

[global]

ioengine=libaio

userspace_reap

time_based runtime=60

direct=1

group_reporting randrepeat=0

norandommap ramp_time=6

iodepth=1

numjobs=1

exitall

[randwrite4k]

filename=/dev/vda1

rw=randwrite bs=4K

 下面就是上述结果的解读:

  • 总体性能指标

    • 总写入数据量:429932KB(约420MB)
    • 平均带宽:7165.5KB/s(或约7.17MB/s)
    • 每秒I/O操作次数(IOPS):1791
    • 运行时间:60001毫秒(60秒)
  • 提交时延(slat)

    • 最小值:2微秒
    • 最大值:52微秒
    • 平均值:4.73微秒
    • 标准差:1.86微秒
    • 提交时延主要由服务器处理器和操作系统决定,也受SSD的接口协议和工作模式影响。在这个测试中,提交时延非常低且稳定。
  • 完成时延(clat)

    • 最小值:319微秒
    • 最大值:123271微秒(即123.271毫秒)
    • 平均值:552.69微秒
    • 标准差:765.64微秒
    • 完成时延主要由SSD决定,反映了从I/O提交到I/O完成的时长。在这个测试中,完成时延的波动较大,但平均值仍在可接受范围内。
  • 总时延(lat)

    • 最小值:324微秒
    • 最大值:123275微秒(即123.275毫秒)
    • 平均值:557.54微秒
    • 标准差:765.64微秒
    • 总时延是提交时延和完成时延之和,反映了从fio创建I/O到I/O完成的时长。
  • 最小带宽:0KB/s(测试开始时)
  • 最大带宽:7880KB/s
  • 带宽利用率:99.24%
  • 平均带宽:7110.49KB/s(与平均带宽指标略有差异,但相差不大)
  • 标准差:778.76KB/s
  • CPU使用率

    • 用户态:0.30%
    • 系统态:1.76%
    • 上下文切换次数:117896次
    • CPU使用率较低,表明测试对CPU资源的消耗不大。
  • I/O深度

    • I/O深度为1时,占比为109.7%(超过100%可能是因为四舍五入或并发I/O请求数略有波动)
    • 其他I/O深度(2、4、8、16、32、>=64)的占比均为0%
    • 这表明测试期间主要使用的是I/O深度为1的并发I/O请求。
  • 磁盘I/O操作数

    • 读操作数:305次
    • 写操作数:117792次
    • 合并读操作数:0次
    • 合并写操作数:33次
    • 磁盘主要忙于写操作。
  • 磁盘忙碌时间

    • 读操作忙碌时间:258个ticks
    • 写操作忙碌时间:64950个ticks
    • 队列中等待时间:65208个ticks
    • 磁盘利用率:99.88%
    • 磁盘在测试期间几乎一直处于忙碌状态。

这份fio测试结果表明,存储系统在执行4KB大小的随机写入操作时表现出良好的性能。尽管完成时延存在一定的波动,但平均带宽和IOPS均保持在较高水平。同时,CPU使用率较低,磁盘利用率较高,表明测试期间存储系统得到了充分的利用。

3.3 测试随机读IOPS

创建job_file文件测试随机读的IOPS,文件内容如下。创建后,执行命令fio job_file查看测试结果。

[global]
ioengine=libaio
userspace_reap
time_based
runtime=60
direct=1
group_reporting
randrepeat=0
norandommap
ramp_time=6
iodepth=128
numjobs=8
exitall
[randread4k]
filename=/dev/vda1
rw=randread
bs=4k

这份fio测试结果提供了关于存储系统在执行4KB大小的随机读取操作时的详细性能数据。以下是对测试结果的详细解读:

总体性能指标

  • 总读取数据量:1888.5MB
  • 平均带宽:32227KB/s(或约32.23MB/s)
  • 每秒I/O操作次数(IOPS):8039
  • 运行时间:60003毫秒(60秒)

时延分析

  • 提交时延(slat)
    • 最小值:2微秒
    • 最大值:975348微秒(即0.975秒)
    • 平均值:830.63微秒
    • 标准差:27773.96微秒
    • 提交时延的波动较大,但平均值仍在可接受范围内。这可能是由于系统负载、中断处理等因素导致的。
  • 完成时延(clat)
    • 最小值:285微秒
    • 最大值:1001.5K微秒(即1001.5毫秒或1秒)
    • 平均值:128273.66微秒(即128.27毫秒)
    • 标准差:323745.43微秒
    • 完成时延的波动非常大,且平均值较高。这表明存储系统在处理随机读取请求时存在较大的延迟。
  • 总时延(lat)
    • 最小值:288微秒
    • 最大值:1001.5K微秒(即1001.5毫秒或1秒)
    • 平均值:129126.08微秒(即129.13毫秒)
    • 标准差:324666.03微秒
    • 总时延的波动和平均值都与完成时延相似,因为完成时延在总时延中占主导地位。

此外,测试还提供了时延的百分位数数据。例如,99.99%的I/O操作在987136微秒(即0.987毫秒)内完成,但需要注意的是,这里的99.99%百分位数实际上受到了极端值的影响,因为大部分操作的完成时延都远低于这个值。

带宽分析

  • 最小带宽:0KB/s(测试开始时)
  • 最大带宽:9719KB/s
  • 带宽利用率和平均值等数据在测试报告中未直接给出百分比形式,但可以通过计算得出。例如,平均带宽为3935.28KB/s(在多个并发I/O请求下测得),这表明存储系统在测试期间能够提供稳定的带宽输出。然而,与平均带宽32227KB/s(整体测试的平均值)相比,单个请求的带宽波动较大。

磁盘统计信息

  • 磁盘I/O操作数
    • 读操作数:536101次
    • 写操作数:48次(几乎可以忽略不计)
    • 磁盘主要忙于读操作。
  • 磁盘合并操作数
    • 读操作合并数:0次(表明读操作没有被合并)
    • 写操作合并数:37次(但写操作次数很少,所以合并操作的影响不大,因为这里我们主要测试的是随机读情况下的IOPS)
  • 磁盘忙碌时间
    • 读操作忙碌时间:31904414个ticks(表明磁盘在测试期间几乎一直处于忙碌状态)
    • 写操作忙碌时间:1244个ticks(很少)
    • 队列中等待时间:31905658个ticks(与读操作忙碌时间相近)
    • 磁盘利用率:93.49%(表明磁盘在测试期间得到了充分的利用)

这份fio测试结果表明,存储系统在执行4KB大小的随机读取操作时,虽然能够提供较高的平均带宽和IOPS,但完成时延的波动较大且平均值较高。但是这可能是由于存储系统的内部机制、磁盘性能或系统负载等因素导致的。为了改善性能,可以考虑优化存储系统的配置、升级硬件或降低系统负载等方法。同时,进行更多类型的测试(如顺序读、混合读写等)并分析测试结果也是很有必要的。 但整体下面我们主要测试的是随机读的情况下。

3.4 测试随机写IOPS

创建job_file文件测试随机写的IOPS,文件内容如下。创建后,执行命令fio job_file查看测试结果。

[global]
ioengine=libaio
userspace_reap
time_based
runtime=60
direct=1
group_reporting
randrepeat=0
norandommap
ramp_time=6
iodepth=128
numjobs=8
exitall
[randwrite4k]
filename=/dev/vda1
rw=randwrite
bs=4k

这份fio测试结果提供了关于存储系统在执行4KB大小的随机写入操作时的详细性能数据。以下是对测试结果的解读:

总体性能指标

  • 总写入数据量:1883.8MB
  • 平均带宽:32147KB/s(或约32.15MB/s)
  • 每秒I/O操作次数(IOPS):8019
  • 运行时间:60003毫秒(60秒)

时延分析

  • 提交时延(slat)
    • 最小值:2微秒
    • 最大值:974711微秒(即0.975秒)
    • 平均值:807.85微秒
    • 标准差:27292.34微秒
    • 提交时延的波动较大,但平均值在可接受范围内,表明系统处理I/O请求的中断和调度效率尚可。
  • 完成时延(clat)
    • 最小值:481微秒
    • 最大值:1011.9K微秒(即1011.9毫秒或1秒多)
    • 平均值:128600.31微秒(即128.6毫秒)
    • 标准差:322867.92微秒
    • 完成时延的波动非常大,且平均值较高。这表明存储系统在处理随机写入请求时存在较大的延迟,可能是由于磁盘性能瓶颈、存储系统内部处理机制或系统负载等因素导致的。
  • 总时延(lat)
    • 最小值:484微秒
    • 最大值:1011.9K微秒(即1011.9毫秒或1秒多)
    • 平均值:129420.85微秒(即129.42毫秒)
    • 标准差:323748.74微秒
    • 总时延的波动和平均值与完成时延相似,因为完成时延在总时延中占主导地位。

此外,测试还提供了时延的百分位数数据。例如,99.99%的I/O操作在995328微秒(即0.995毫秒)内完成,但需要注意的是,这里的99.99%百分位数实际上受到了极端值的影响,因为大部分操作的完成时延都远低于这个值。

带宽分析

  • 最小带宽:0KB/s(测试开始时)
  • 最大带宽:9237KB/s
  • 平均带宽利用率和值等数据表明,存储系统在测试期间能够提供稳定的带宽输出,但单个请求的带宽波动较大。

CPU和I/O深度

  • CPU使用率
    • 用户态:0.08%
    • 系统态:0.56%
    • CPU使用率非常低,表明测试对CPU资源的消耗很小。
  • I/O深度
    • 在测试期间,主要使用的是I/O深度大于等于64的并发I/O请求(占比111.6%,超过100%可能是因为四舍五入或并发I/O请求数略有波动)。
    • 提交和完成I/O请求时,主要使用的是4KB大小的块(占比100%)。

磁盘统计信息

  • 磁盘I/O操作数
    • 读操作数:375次(很少,因为主要是写入测试)
    • 写操作数:535818次
    • 磁盘主要忙于写操作。
  • 磁盘合并操作数
    • 读操作合并数:0次
    • 写操作合并数:41次(写操作合并次数相对较多,但考虑到写操作总数很大,合并比例仍然很低,因为我们这里主要是测试随机写的IOPS)
  • 磁盘忙碌时间
    • 读操作忙碌时间:21348个ticks(很少)
    • 写操作忙碌时间:32530818个ticks(表明磁盘在测试期间几乎一直处于忙碌状态)
    • 队列中等待时间:32552166个ticks(与写操作忙碌时间相近)
    • 磁盘利用率:90.91%(表明磁盘在测试期间得到了充分的利用)

综上所述,这份fio测试结果表明,存储系统在执行4KB大小的随机写入操作时,虽然能够提供较高的平均带宽和IOPS,但完成时延的波动较大且平均值较高。这可能是由于存储系统的内部机制、磁盘性能或系统负载等因素导致的。为了改善性能,可以考虑优化存储系统的配置、升级硬件(如使用更快的SSD)、调整I/O调度策略或降低系统负载等方法。同时,进行更多类型的测试(如顺序写、混合读写等)并分析测试结果也是很有必要的。

整体感觉来说,还是非常不错的,带宽方面也可以提供稳定输出,且磁盘的随机读写性能都非常好。

结合上面测评来说,华为云Flexus云服务器X实例以其柔性算力、高性能加速、成本优化和安全可靠等特点,成为中小企业在828企业节期间选择云服务的优选之一。如果您正在寻找一款性价比高、性能卓越的云服务器产品,不妨考虑华为云Flexus云服务器X实例。点击下方卡片立即跳转查看吧:

Flexus云服务器X实例-华为云Flexus云服务器X实例(Flexus X)是柔性算力,六倍性能,旗舰体验,覆盖高科技、零售、金融、游戏等行业大多数通用工作负载场景。icon-default.png?t=O83Ahttps://www.huaweicloud.com/product/flexus-x.html

相关文章:

828华为云征文 | 利用FIO工具测试Flexus云服务器X实例存储性能

目录 一、Flexus云服务器X实例概要 1.1 Flexus云服务器X实例摘要 1.2 产品特点 1.3 存储方面性能 1.4 测评服务器规格 二、FIO工具 2.1 安装部署FIO 2.2 主要性能指标概要 三、进行压测 3.1 测试全盘随机读IO延迟 3.2 测试全盘随机写IO延迟 3.3 测试随机读IOPS 3.4…...

Pikachu-File Inclusion- 本地文件包含

前端每次挑选篮球明星,都会通过get请求,传了文件名,把页面展示出来,由于文件名时前端传给后台;并且查看源码,没有对参数做限制; 尝试直接从前端修改filename 参数; filename../../../../../../…...

linux基础 超级笔记

1.Linux系统的组成 Linux系统内核:提供系统最核心的功能,如软硬件和资源调度。 系统及应用程序:文件、任务管理器。 2.Linux发行版 通过修改内核代码自行集成系统程序,即封装。比如Ubuntu和centos这种。不过基础命令是完全相…...

Python——异常处理机制

Python 异常处理机制 Python异常与异常处理机制针对 Traceback 的解读try-except-else-finallyexcept语句except语句的机制在 except 语句中引用当前被处理的 Python 异常 finally语句finally语句执行后才能抛出未被处理的异常finally中执行return会导致异常丢失 raise 语句rai…...

社群团购中的用户黏性价值:以开源小程序多商户AI智能名片商城源码为例

摘要:本文探讨社群团购中的用户黏性价值,分析其与传统团购网站的区别,并阐述开源小程序多商户AI智能名片商城源码在增强社群团购用户黏性方面可能发挥的作用。 一、引言 在当今的商业环境中,社群团购逐渐成为一种重要的营销模式。…...

基于php的民宿预订管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏:Java精选实战项目…...

java 从基础到入门 到架构师所需要学习的路线

java是一种广泛使用的编程语言,可以应用于多种平台和应用程序。下面是一个从基础到入门,再到架构师所要掌握的Java学习路线的详细列举: 学习Java基础知识: 理解面向对象编程的概念,如类、对象、继承、多态等。 学习Ja…...

【吊打面试官系列-MySQL面试题】什么叫视图?游标是什么?

大家好,我是锋哥。今天分享关于【什么叫视图?游标是什么?】面试题,希望对大家有帮助; 什么叫视图?游标是什么? 视图是一种虚拟的表,具有和物理表相同的功能。可以对视图进行增&#…...

项目管理-信息技术发展

1、计算机软硬件 2、计算机网络 1)定义 2)分类:PAN LAN MAN WAN 公用网 专用网 3)网络协议 语法 语义 时许 4)网络标准协议 7层 5)IEEE 802 规范 6)TCP/IP 协议 7) SDN 软件定义网…...

异常处理【C++提升】(基本思想,重要概念,异常处理的函数机制、异常机制,栈解旋......你想要的全都有)

更多精彩内容..... 🎉❤️播主の主页✨😘 Stark、-CSDN博客 本文所在专栏: C系列语法知识_Stark、的博客-CSDN博客 座右铭:梦想是一盏明灯,照亮我们前行的路,无论风雨多大,我们都要坚持不懈。 异…...

基于springboot vue 电影推荐系统

博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php python(flask Django) 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找…...

八、特殊类型异常机制

特殊类型&异常机制 数据类型枚举类型匿名类、单例类和伴生对象匿名类单例类伴生对象 委托模式密封类型异常机制异常的使用异常的处理 数据类型 对于那些只需要保存数据的类型,我们常常需要为其重写toString、equals等函数,针对于这种情况下&#xf…...

虾皮Shopee Android面试题及参考答案

HTTP 状态码有哪些? HTTP 状态码是用以表示网页服务器超文本传输协议响应状态的 3 位数字代码。主要分为五大类: 1xx 信息性状态码:表示服务器正在处理请求,这些状态码是临时的响应,主要用于告诉客户端请求已经被接收,正在处理中。例如,100 Continue 表示客户端应当继续…...

Docker Compose 部署大模型GPU集群:高效分配与管理算力资源

Docker Compose 部署大模型GPU集群:高效分配与管理算力资源 文章目录 Docker Compose 部署大模型GPU集群:高效分配与管理算力资源一 Dockerfile 编写二 Dockerfile 示例三 分配GPU资源1)GPU分配:指定count2)GPU分配&am…...

直立行走机器人技术概述

直立行走机器人技术作为现代机器人领域的重要分支,结合了机械工程、计算机科学、人工智能、传感技术和动态控制等领域的最新研究成果。随着技术的不断发展,直立行走机器人在救灾、医疗、家庭辅助等领域开始发挥重要作用。本文旨在对直立行走机器人的相关…...

【Linux】wsl虚拟机时间和实际时间不符合

本文首发于 ❄️慕雪的寒舍 偶然遇到了这个问题,触发原因是电脑在开启wsl的情况下进入了 休眠 模式,且在无网络情况下几天不使用。 然后开启wsl,发现git log显示最新commit的提交时间是明天,给我吓一跳,然后才发现原来…...

初识算法 · 滑动窗口(1)

目录 前言: 长度最小的子数组 题目解析 算法原理 算法编写 无重复长度的最小字符串 题目解析 算法原理 算法编写 前言: 本文开始,介绍的是滑动窗口算法类型的题目,滑动窗口本质上其实也是双指针,但是呢&#…...

nginx和gateway的关系和区别

在技术选型时,选择 Nginx 和 Spring Cloud Gateway(或简称为 Gateway)主要取决于具体应用场景和技术需求。下面是两者的一些关键差异和适用场景。 一、Nginx 概念 Nginx 是一个高性能的 Web 服务器和反向代理服务器,常被用作静…...

【算法笔记】滑动窗口算法原理深度剖析

【算法笔记】滑动窗口算法原理深度剖析 🔥个人主页:大白的编程日记 🔥专栏:算法笔记 文章目录 【算法笔记】滑动窗口算法原理深度剖析前言一.长度最小的子数组1.1题目1.2思路分析1.3算法流程1.4正确性证明1.5代码实现 二.无重复…...

4S店4S店客户管理系统小程序(lw+演示+源码+运行)

社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

什么是EULA和DPA

文章目录 EULA(End User License Agreement)DPA(Data Protection Agreement)一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA(End User License Agreement) 定义: EULA即…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

ios苹果系统,js 滑动屏幕、锚定无效

现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...