vdbench

文章目录

  • vdbench
    • 什么是vdbench
    • vdbench和FIO的区别
    • 下载安装
    • 命令参数说明
      • 文件系统参数说明
        • 主机定义HD(Host Define)
          • hd
          • system
          • vdbench
          • user
          • shell
        • 文件系统定义FSD(File System Define)
          • fsd
          • anchor
          • depth
          • width
          • files
          • size
          • distribution
          • shared
          • 案例
        • 文件系统工作加载定义FWD(FileSystem Workload Defile)
          • fwd
          • fsd
          • host
          • operation
          • rdpct
          • fileio
          • fileselect
          • xfersizes
          • threads
        • 运行时定义RD(Run Define)
          • rd
          • fwd
          • fwdrate
          • format
          • elapsed
          • interval
      • 块设备参数说明
        • HD(Host Define)
          • hd
          • system
          • vdbench
          • user
          • shell
        • SD(Storage Define)
          • sd
          • hd
          • lun
          • openflags
          • threads
        • WD(Workload Define)
          • wd
          • sd
          • seekpct
          • rdpct
          • xfersize
          • skew
        • RD(Run Define)
          • rd
          • wd
          • iorate
          • warmup
          • maxdata
          • elapsed
          • interval
    • 运行使用
      • 单机运行
      • 联机运行
    • 结果分析
      • errorlog.html
      • flatfile.html vdbench
      • histogram.html
      • logfile.html
      • parmfile.html
      • summary.html
      • totals.html
    • 常用测试用例
    • 测试注意项

什么是vdbench

由java语言编写的一个磁盘IO负载生成器,
主要用来测试块设备的存储,也可以测试文件,与FIO类似

vdbench和FIO的区别

优点:
1、可以测试整个集群的io(把整个测试io进行叠加,这样测试的时候可以把全部的虚机全部启动)
2、测试报告会根据主机统计io
3、报告还会根据设备显示io的延迟信息(记录每个io操作的用时),可以保证io是否稳定

与FIO的区别
可以测试块接口也可以测试文件接口,文件接口是去模拟写入文件,这个和mdtest类似,但mdtest是测试元数据能力,vdbench会比较综合

vdbench是中科院研究所使用的新测试软件

下载安装

1.下载源码
https://www.oracle.com/downloads/server-storage/vdbench-downloads.html

2.解压到vdbench文件夹

unzip vdbench50407.zip -d vdbench

3.运行命令vdbench -t检查是否正常运行

命令参数说明

 vdbench -f {filename} -o {exportpath}

#注:-f后接测试参数文件名,-o后接导出测试结果路径

vdbench 测试工具涉及到的参数非常多
这些参数可以分为 块存储 和 文件系统 两部分
每部分又是按组进行划分的
所有的参数都需要定义到一个参数文件当中,在被读取的时候都是按顺序进行的,所以在定义时需要按指定的顺序进行定义

块存储参数文件的定义顺序: HD, SD, WD, RD

文件系统参数文件的定义顺序: HD, FSD, FWD, RD

HD 主机定义
SD 存储定义
WD 工作负载定义
RD 运行定义
FSD 文件系统存储定义
FWD 文件工作负载定义

常用选项
-t: 运行5秒的块设备测试,用于测试vdbench是否可用。
-tf: 运行5秒的文件系统测试,用于测试vdbench是否可用。
-f perfile: 加上参数文件prefile,进行实际测试。

-v: 开启数据校验
-vr: 写入数据的同时也进行数据校验,通常用于测试时间比较长的情况。
-v是写入完再校验 -vr是边写入边校验

rsh: 运行rsh守护进程,用于windows联机运行测试。

-o xxx: 将输出文件的路径另为其它路径,默认是保存在当前目录的output目录中。

其它选项: -j , -jn , -jr

文件系统参数说明

主机定义HD(Host Define)

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243
hd

hd= 标识主机定义的名称,多主机运行时,可以使用hd1、hd2、hd3…区分

system

system= 主机IP地址或主机名

vdbench

vdbench= vdbench执行文件存放路径,当多主机存放路径不同时,可在hd定义时单独指定

user

user= slave和master通信使用用户

shell

shell= 可选值为rsh、ssh或vdbench,默认值为rsh
多主机联机测试时,mater和slave主机间通信方式
当参数值为rsh时,需要配置master和slave主机rsh互信
考虑到rsh使用明文传输,安全级别不够,通常情况下不建议使用这种通信方式
当参数值为ssh时,需要配置master和slave主机ssh互信,通常Linux主机联机时使用此通信方式
当参数值为vdbench,需要在所有slave主机运行vdbench rsh启用vdbench本身的rsh守护进程,通常Window主机联机时使用此通信方式

文件系统定义FSD(File System Define)

fsd=default,depth=2,width=3,files=2,size=128k
fsd=fsd1,anchor=/mnt/client1
fsd=fsd2,anchor=/mnt/client2
fsd=fsd3,anchor=/mnt/client3
fsd

fsd= 标识文件系统定义的名称,多文件系统时(fsd1、fsd2、fsd3…),可以指定default(将相同的参数作为所有fsd的默认值)

anchor

anchor= 文件写入根目录

depth

depth= 创建目录层级数(即目录深度)

width

width= 每层文件夹的子文件夹数

files

files= 测试文件个数(vdbench测试过程中会生成多层级目录结构,实际只有最后一层目录会生成测试文件)

size

size= 每个测试文件大小

distribution

distribution= 可选值为bottom或all,默认为bottom
–当参数值为bottom时,程序只在最后一层目录写入测试文件
–当参数值为all时,程序在每一层目录都写入测试文件

shared

shared= 可选值为yes或no,默认值为no
一般只有在多主机联机测试时指定

vdbench不允许不同的slave之间共享同一个目录结构下的所有文件,因为这样会带来很大的开销,但是它们允许共享同一个目录结构

加入设置了shared=yes,那么不同的slave可以平分一个目录下所有的文件来进行访问,相当于每个slave有各自等分的访问区域,因此不能测试多个客户的对同一个文件的读写 --当多主机联机测试时,写入的根目录anchor为同一个路径时,需要指定参数值为yes

案例
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node1
hd=hd2,system=node2
hd=hd3,system=node3
fsd=fsd1,anchor=/client/,depth=2,width=100,files=100,size=4k,shared=yes

计算公式如下:  
最后一层生成文件夹个数=widthdepth = width的depth次方
测试文件个数=(widthdepth)*files

fsd=fsd1,anchor=/dir1,depth=2,width=3,files=2,size=128k
以上述参数为例,生成目录结构及测试文件如下:
最后一层文件夹数=3^2=9 最后一层文件数=9*2=18

文件系统工作加载定义FWD(FileSystem Workload Defile)

fwd=default,operation=read,xfersize=4k,fileio=sequential,fileselect=random,threads=2
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd2,host=hd2
fwd=fwd3,fsd=fsd3,host=hd3
fwd

fwd= 标识文件系统工作负载定义的名称,多文件系统工作负载定义时,可以使用fwd1、fwd2、fwd3…区分

fsd

fsd= 标识此工作负载使用文件存储定义的名称

host

host= 标识此工作负载使用主机

operation

operation= 可选值为read或write,文件操作方式

rdpct

rdpct= 可选值为0~100,读操作占比百分比,一般混合读写时需要指定,当值为60时,则混合读写比为6:4

fileio

fileio= 可选值为random或sequential,标识文件 I/O 将执行的方式

fileselect

fileselect= random或sequential,标识选择文件或目录的方式

xfersizes

xfersizes= 数据传输(读取和写入操作)处理的数据大小(即单次IO大小)

threads

threads= 此工作负载的并发线程数量

运行时定义RD(Run Define)

rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapsed=604800,interval=10
rd

rd= 标识文件系统运行定义的名称。

fwd

fwd= 标识文件系统工作负载定义的名称。

fwdrate

fwdrate= 每秒执行的文件系统操作数量。设置为max,表示不做任何限制,按照最大强度自适应

format

format= 可选值为yes、no或restart,标识预处理目录和文件结构的方式
–yes表示删除目录和文件结构再重新创建
–no表示不删除目录和文件结构
–restart表示只创建未生成的目录或文件,并且增大未达到实际大小的文件

如果测试的时候定义的文件数是1000,后面改为了2000,如果使用了format=restart就会创建1001-2000 如果设置format=yes会删除1000个文件后再重新创建2000,使用format=no就不会重新创建1000个,但会创建1001-2000但不会检查前1000个文件的大小

elapsed

elapsed= 默认值为30,测试运行持续时间(单位为秒)

interval

interval= 结果输出打印时间间隔(单位为秒)

块设备参数说明

块设备参数文件定义顺序为:HD、SD、WD、RD

HD(Host Define)

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243
hd

hd= 标识主机定义的名称,多主机运行时,可以使用hd1、hd2、hd3…区分

system

system= 主机IP地址或主机名

vdbench

vdbench= vdbench执行文件存放路径,当多主机存放路径不同时,可在hd定义时单独指定

user

user= slave和master通信使用用户

shell

shell= 可选值为rsh、ssh或vdbench,默认值为rsh
多主机联机测试时,mater和slave主机间通信方式
当参数值为rsh时,需要配置master和slave主机rsh互信
考虑到rsh使用明文传输,安全级别不够,通常情况下不建议使用这种通信方式
当参数值为ssh时,需要配置master和slave主机ssh互信,通常Linux主机联机时使用此通信方式
当参数值为vdbench,需要在所有slave主机运行vdbench rsh启用vdbench本身的rsh守护进程,通常Window主机联机时使用此通信方式

SD(Storage Define)

sd=sd1,hd=hd1,lun=/dev/sdb,openflags=o_direct,threads=6
sd=sd3,hd=hd2,lun=/dev/sdb,openflags=o_direct,threads=6
sd

sd= 标识存储定义的名称

hd

hd= 标识主机定义的名称

lun

lun= 写入块设备,如:/dev/sdb, /dev/sdc…

openflags

openflags= 通过设置为o_direct,以无缓冲缓存的方式进行读写操作

threads

threads= 对SD的最大并发I/O请求数量

WD(Workload Define)

wd=wd1,sd=sd*,seekpct=100,rdpct=100,xfersize=8k,skew=40
wd=wd2,sd=sd*,seekpct=100,rdpct=0,xfersize=8k,skew=10
wd=wd3,sd=sd*,seekpct=100,rdpct=100,xfersize=1024k,skew=40
wd=wd4,sd=sd*,seekpct=100,rdpct=0,xfersize=1024k,skew=10
wd

wd= 标识工作负载定义的名称

sd

sd= 标识存储定义的名称

seekpct

seekpct= 可选值为0或100(也可使用sequential或random表示),默认值为100,随机寻道的百分比,
设置为0时表示顺序,设置为100时表示随机。

rdpct

rdpct= 读取请求占请求总数的百分比,
设置为0时表示写,设置为100时表示读

xfersize

xfersize= 要传输的数据大小。默认设置为4k

skew

skew= 非必选项,一般在多个工作负载时需要指定,表示该工作负载占总工作量百分比(skew总和为100)

RD(Run Define)

rd=rd1,wd=wd*,iorate=max,maxdata=400GB,warmup=30,elapse=604800,interval=5
rd

rd= 标识运行定义的名称

wd

wd= 标识工作负载定义的名称

iorate

iorate= 常用可选值为100、max,此工作负载的固定I/O速率
–当参数值为100时,以每秒100个I/Os的速度运行工作负载,当参数值设置为一个低于最大速率的值时,可以达到限制读写速度的效果
–当参数值为max时,以最大的I/O速率运行工作负载
一般测试读写最大性能时,该参数值均为max

warmup

warmup= 预热时间(单位为秒)
默认情况下vdbench会将第一个时间间隔输出数据排除在外,程序在预热时间内的测试不纳入最终测试结果中
(即预热结束后,才开始正式测试)
–当interval为5、elapsed为600时,测试性能为2 elapsed/interval(avg_2-120)时间间隔内的平均性能
–当interval为5、warmup为60、elapsed为600时,测试性能为1+(warmup/interval)(warmup+elapsed)/interval(avg_13-132)时间间隔内的平均性能

maxdata

maxdata= 读写数据大小,通常情况下,当运行elapsed时间后测试结束
当同时指定elapsed和maxdata参数值时,以最快运行完的参数为准(即maxdata测试时间小于elapsed时,程序写完maxdata数据量后结束)
–当参数值为100以下时,表示读写数据量为总存储定义大小的倍数
如maxdata=2,则是2个存储定义(每个存储定义数据量为100G),则实际读写数据大小为400G
–当参数值为100以上时,表示数据量为实际读写数据量(可以使用单位M、G、T等)

elapsed

elapsed= 默认值为30,测试运行持续时间(单位为秒)

interval

interval= 报告时间间隔(单位为秒)

运行使用

单机运行

单节点针对裸盘测试,1M顺序写,测试时间600s,预热时间60s,报告时间间隔2s
编写Single-RawDisk.html文件

执行
./vdbench -f Single-RawDisk.html

测试结果
iorate:io操作速度
MB/sec:每秒写入速度
bytes i/o:io带宽
read pct :读取占比
resp time:响应
read resp:读取响应
write resp:写入响应
read max:读取最大响应
write max:写入最大响应
resp stddev:响应标准差(越小越好)
queue depth:文件夹队列深度

联机运行

安装部署后,配置多主机ssh互信 2、master主机运行测试参数文件即可 示例如下,三节点针对裸盘联机测试,1M顺序写,测试数据量为400G,预热时间30s,报告间隔5s

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=cat1
hd=hd2,system=cat2
sd=sd1,hd=hd1,lun=/dev/sdc,openflag=o_direct
sd=sd2,hd=hd2,lun=/dev/sdc,openflag=o_direct
wd=wd1,sd=sd*,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,maxdata=100M,elapsed=64800,warmup=30,interval=5

执行

 ./vdbench -f Multi-RawDisk

结果分析

当vdbench运行完负载测试后,会在安装目录下生成output文件夹,里边包含测试结果文件

errorlog.html

当运行测试启用数据校验时,它可能会包含一些错误信息,如:
无效的密钥读取
无效的 lba 读取(一个扇区的逻辑字节地址)
无效的 SD 或 FSD 名称读取
数据损坏
坏扇区

flatfile.html vdbench

生成的一种逐列的 ASCII 格式的信息,可以使用parseflat参数解析结果

./vdbench parseflat -i <flatfile.html> -o output.csv [-c col1 col2 ..] [-a] [-f
col1 value1 col2 value2..]
-i input flatfile, e.g. output/flatfile.html
-o output CSV file name (default stdout)
-c which column to write to CSV. Columns are written in the order specified
-f filters: 'if (colX == valueX) ... ...' (Alphabetic compare)
-a include only the 'avg' data. Default: include only non-avg data.

-i是表示待分析的文件,这里写vdbench输出目录里的flatfile.html这个文件,写其它文件不能正常解析;
-o是解析后的输出文件,可以手动指定存放目录。文件格式为CSV,此文件的列由-c参数指定,列的顺序为-c参数的顺序
-a是表示csv文件中只记录测试过程中的avg值
示例如下:

  .\vdbench.bat parseflat -i D:\vdbench50406\output\flatfile.html -c run rate
MB/sec seekpct rdpct bytes/io threads resp -o d:\output.csv -a
vdbench parseflat arguments:
Argument 0: -i
Argument 1: D:\vdbench50406\output\flatfile.html
Argument 2: -c
Argument 3: run
Argument 4: rate
Argument 5: MB/sec
Argument 6: seekpct
Argument 7: rdpct
Argument 8: bytes/io
Argument 9: threads
Argument 10: resp
Argument 11: -o
Argument 12: D:\output.csv
Argument 13: -a
14:12:49.265 ParseFlat completed successfully.

histogram.html

一种包含报告柱状图的响应时间、文本格式的文件

logfile.html

包含 Java 代码写入控制台窗口的每行信息的副本。logfile.html 主要用于调试用途

parmfile.html

包含测试运行配置参数信息

summary.html

记录全部数据信息,显示每个报告间隔内总体性能情况及工作负载情况,以及除第一个间隔外的所有间隔的加权平均值

totals.html

记录全部数据计算之后的平均值,一般测试结果从该文件取值,除第一个间隔外所有间隔的加权平均值
totals.html 一般包括两个部分,第一部分为文件存储目录结构及数据填充的平均性能值,第二部分为执行测试过程中除第一个时间间隔外所有时间间隔平均性能值,主要看第二部分的内容

Interval 报告间隔序号,测试结果一般为除第一个时间间隔外所有时间间隔加权平均值 如elapsed=600,interval=5,则性能结果为第2个间隔到第120个间隔的平均值(avg_2-120)
ReqstdOps
rate 每秒读写I/O个数(读写IOPS),可以通过rd运行定义参数fwdrate控制 当fwdrate为max时,以最大I/O速率运行工作负载 当fwdrate为低于最大I/0速率的一个数值时,可以限制读写速度,以固定I/O速率运行工作负载
resp 读写请求响应时间(读写时延),单位为ms
cpu%
total 总的cpu占用率
sys 系统cpu占用率
read pct 读取请求占总请求数百分比占比,当为0时表示写,当为100时表示读
read
rate 每秒读I/O个数(读IOPS)
resp 读请求响应时间(读时延),单位为ms
write
rate 每秒写I/O个数(写IOPS)
resp 写请求响应时间(写时延),单位为ms
mb/sec
read 每秒读取速度
write 每秒写入速度
total 每秒读写速度总和
xfersize 每个读写I/O传输数据量(即单个读写I/O大小),单位为字节B

常用测试用例

4M顺序写 目录深度2、单级目录数100、单个目录文件数100、单文件大小4M、IO块大小1M、顺序写

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test01,depth=2,width=100,files=100,size=4M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequential,fileselect=sequential,operation=write,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1

4M顺序读 目录深度2、单级目录数100、单个目录文件数100、单文件大小4M、IO块大小1M、顺序读

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test03,depth=2,width=100,files=100,size=8M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequence,fileselect=sequence,rdpct=100,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1

8M混合读写 目录深度2、单级目录数100、单个目录文件数100、单文件大小8M、IO块大小1M、混合读写(读写比为6:4)

hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test03,depth=2,width=100,files=100,size=8M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=random,fileselect=random,rdpct=60,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1

测试注意项

线程数(thread)一般设置为客户端CPU线程数总大小 grep ‘processor’ /proc/cpuinfo |
sort -u | wc -l
测试总数据量需要为客户端内存大小两倍
测试读模型时需要清理客户端缓存信息
sync;echo 3 > /proc/sys/vm/drop_cache

文件系统性能测试工具 vbbench工具相关推荐

  1. Linux文件系统性能测试工具fdtree和iozone

    Linux Magazine用了四篇文章(第一部分,第二部分)介绍了两个Linux文件系统性能测试工具,fdtree和iozone.fdtree比较少听说,它可以测ext3, ext4, nilfs2 ...

  2. 软件测试性能测试结果,软件性能测试结果分析工具的研究与设计

    摘要: 随着软件行业的发展,针对软件系统尤其是Web应用系统的性能测试技术已经成为了软件测试领域的热点.虽然许多测试工具对性能测试提供了自动化支持,但性能测试的执行过程仍具有极高的专业性和复杂度,这一 ...

  3. Android 性能测试——Memory Monitor 工具

    Android 性能测试--Memory Monitor 工具 Memory Monitor能做什么? 实时查看App的内存分配情况 快速判断App是否由于GC操作造成卡顿 快速判断App的Crash ...

  4. 1 Linux系统性能测试与监测工具汇总

    综合能力 性能测试([Unixbench]) [root@localhost] $ ./Run 计算 查看当前CPU负载(uptime) [root@localhost] $ uptime 测试单cp ...

  5. 性能测试这些常用工具你一定要知道!【建议收藏!】

    目录 Jmeter Sysbench HammerDB SwingBench LoadRunner 推荐阅读 随着社会及信息技术的飞速发展,人们对计算机及网络的依赖性越来越大,与此同时,数据也更集中于 ...

  6. Android内存检测工具系列工具集

    Android内存检测工具系列工具集 Android关于内存的工具不少,灵活地选择工具就显得特别重要.在此特别推荐分享涵盖一定初步和定位能力的工具,可以让我们一步到位地分析问题,提升效率. 在此列举几 ...

  7. xml工具生成工具_研究当前的XML工具

    xml工具生成工具 常用缩略语 API:应用程序编程接口 DITA:达尔文信息键入体系结构 DTD:文档类型定义 HTML:超文本标记语言 IDE:集成开发环境 URL:统一资源定位符 W3C:万维网 ...

  8. 全球最优秀的免费软件下载-压缩工具-文件转换工具-下载工具-杀毒工具-图片编辑器-网络管理工具...

    [ 标题] 全球最优秀的免费软件下载 [ 关键字] 压缩工具- 文件转换工具- 下载工具- 杀毒工具- 图片编辑器- 网络管理工具- 即时软件  误删除文件恢复工具-文本编辑器-系统设置工具-虚拟工作 ...

  9. 注释工具_干货:PS工具介绍“计算工具+注释工具”

    计数工具 计数工具:计数工具的作用其实就是计数,比如一张包含有若干人像的照片,而这个时候你需要知道该图像中到底有多少人!那么计数工具将会给你带来极大的方便. 打开一张需要计数的文件,在工具栏中找到计数 ...

最新文章

  1. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制
  2. 百度经验怎么赚钱之练就三星经验,轻松布局流量入口。
  3. mxd 对象继承法则
  4. spock框架_Spock VW:编写自定义的Spock框架扩展
  5. 11054 - Wine trading in Gergovia
  6. TensorBoard 1.15.0 at http://DESKTOP-DV74NQ2:6006/ 打开html后无法展示解决方案
  7. 记录一个crontab的中使用python脚本的坑
  8. python实现web服务器_python实现静态web服务器
  9. 搜苹果ipad版_春季课前第3轮评估! 安卓苹果电脑端全平台支持!
  10. C#中splitContainer用法
  11. 域名解析到服务器ip,域名解析到服务器ip上无法访问的原因汇总
  12. 计算机房宣传标语,机房安全标语
  13. 一本通 1273:货币系统
  14. 股权融资的A、B、C、D轮
  15. attempting to bokeyaunrun eclipse useing the jre instead of jdk,to run eclipse using
  16. js中的颜色对应的常量代码code
  17. 把握节奏,你能做得更好
  18. makefile和make
  19. 2022年区块链白皮书详解及内容分享
  20. you are right大题

热门文章

  1. Docker 容器中的域名解析问题
  2. CRM客户管理系统又翻天了
  3. Unity3dRPG 相机跟随player旋转_在胶卷中留下时代的记忆!胶卷相机推荐
  4. Minor GC、Major GC与Full GC
  5. 长沙南方职院•美和易思校企共建专业举行家长开放日活动
  6. 四、Windows下提取到DSDT.aml以及DSDT初阶修改
  7. mysql proxies priv_proxies_priv · xiaoboluo768/mysql-system-schema Wiki · GitHub
  8. 超外差接收机原理和二次变频原因
  9. JDK17.0.2下载与安装教程,超级详细
  10. React.js 三周 -- 入门到搭建团队基础项目