openGauss使用BenchmarkSQL进行性能测试(上)
一、前言
本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。
BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。
TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果,随着计算机技术的不断发展,这些测试结果也在不断刷新。
二、TPC-C 标准测试概述
1.模拟 5 种事务处理
1)新订单(New-Order):事务内容:对于任意一个客户端,从固定的仓库随机选取 5-15 件商品,创建新订单.其中 1%的订单要由假想的用户操作失败而回滚。(主要特点:中量级、读写频繁、要求响应快)
2)支付操作(Payment):事务内容:对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,采用随机的金额支付一笔订单,并作相应历史纪录。(主要特点:轻量级,读写频繁,要求响应快)
3)订单状态查询(Order-Status):事务内容:对于任意一个客户端,从固定的仓库随机选取一个辖区及其内用户,读取其最后一条订单,显示订单内每件商品的状态。(主要特点:中量级,只读频率低,要求响应快)
4)发货(Delivery): 事务内容:对于任意一个客户端,随机选取一个发货包,更新被处理订单的用户余额,并把该订单从新订单中删除。(主要特点:1-10 个批量,读写频率低,较宽松的响应时间)
5)库存状态查询(Stock-Level):事务内容:对于任意一个客户端,从固定的仓库和辖区随机选取最后 20 条订单,查看订单中所有的货物的库存,计算并显示所有库存低于随机生成域值的商品数量。(主要特点:重量级,只读频率低,较宽松的响应时间)
每个Warehouse数据量约为:76823.04KB
2.TPC-C 测试指标
TPC-C测试的结果主要有两个指标,即流量指标(Throughput,简称tpmC)和性价比(Price/Performance,简称Price/tpmC)。
1)流量指标(Throughput,简称tpmC): 按照TPC组织的定义,流量指标描述了系统在执行支付操作、订单状态查询、发货和库存状态查询这4种交易的同时,每分钟可以处理多少个新订单交易。所有交易的响应时间必须满 足TPC-C测试规范的要求,且各种交易数量所占的比例也应该满足TPC-C测试规范的要求。在这种情况下,流量指标值越大说明系统的联机事务处理能力越高。
2)性价比(Price/Performance,简称Price/tpmc): 即测试系统的整体价格与流量指标的比值,在获得相同的tpmC值的情况下,价格越低越好。
做TPC-C测试的目的主要有两点:
1)贴近生产环境进行实际操作(TPC-C可以提供类似这样的环境)。
2)通过TPC-C测试结果可以清晰的了解数据库的性能等信息。
三、环境介绍
1.服务器信息
主机IP | 配置 | 操作系统 | 描述 |
192.168.52.3 | 1c/4GB/30GB | CentOS Linux release 7.6.1810 (Core) | DB服务器 |
192.168.52.4 | 1c/2GB/20GB | CentOS Linux release 7.9.2009 (Core) | BenchmarkSQL服务器 |
2.软件信息
软件名称 | 版本 | 描述 |
openGauss | 3.1.1 | 关系型(开源)数据库 |
BenchmarkSQL | 5.0 | 一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。 TPC-C是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统。 几乎所有在OLTP市场提供软硬平台的国外主流厂商都发布了相应的TPC-C测试结果, 随着计算机技术的不断发展,这些测试结果也在不断刷新。 |
JDK | java-1.8.0-openjdk | Java开发工具包,它包含了Java开发所需的所有核心组件和工具。JDK是构建Java应用程序、Java平台和Java Web服务的基础。 |
R语言 | 3.6.3 | R语言(generateReport.sh脚本需要) ,支持png报告图片生成 |
htop | 3.3.0 | htop 是一个交互式的进程监控工具,主要用于查看和管理运行中的进程。 它以用户友好的方式显示进程列表,包括进程的 CPU、内存和交换空间使用情况,以及进程树结构。 htop 允许你通过键盘快捷键来进行排序、搜索、终止进程等操作。 htop 提供了颜色和动态更新的界面,更直观地显示资源使用情况。 htop 适合实时查看和管理运行中的进程,特别是在终端环境中。 |
ant | Apache Ant(TM) version 1.9.4 | 一个用于自动化构建过程的工具。它主要用于Java应用程序,但也可以用于其他类型的项目。Ant使用XML文件(通常称为build.xml)来描述构建过程,包括编译源代码、运行测试、打包应用程序等任务。 |
python | 2.7.5 | 数据库服务器,BenchmarkSQL对应的python版本不能过高,否则存在兼容性报错 |
四、配置BenchmarkSQL主机
1. 根据官方文档,安装必要的软件包
-
配置YUM源
(若仅使用华为云内网的YUM源(http://mirrors.myhuaweicloud.com/repo/CentOS-Base-7.repo),会造成软件版本依赖问题)
## 配置华为YUM源
mkdir -p /etc/yum.repos.d/repo_bak/
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/repo_bak/
wget -O /etc/yum.repos.d/CentOS-Base.repo https://repo.huaweicloud.com/repository/conf/CentOS-7-reg.repo## 配置Epel源
yum remove -y epel-release
yum install -y https://repo.huaweicloud.com/epel/epel-release-latest-7.noarch.rpm
cd /etc/yum.repos.d/
rm -rf epel-testing.reposed -i "s/#baseurl/baseurl/g" /etc/yum.repos.d/epel.repo
sed -i "s/mirrorlist/#mirrorlist/g" /etc/yum.repos.d/epel.repo
sed -i "s@http://download.fedoraproject.org/pub@https://repo.huaweicloud.com@g" /etc/yum.repos.d/epel.repo## 顺刷新缓存
yum clean all
yum makecache
yum repolist all
-
安装依赖软件包
yum install gcc glibc-headers gcc-c++ gcc-gfortran readline-devel libXt-devel pcre-devel libcurl libcurl-devel -y
yum install ncurses ncurses-devel autoconf automake zlib zlib-devel bzip2 bzip2-devel xz-devel -y
yum install java-1.8.0-openjdk ant -y
-
安装R语言(generateReport.sh脚本需要)
yum install pango-devel pango libpng-devel cairo cairo-devel ## 使R语言支持png图片,否则报告生成有问题
wget https://mirror.bjtu.edu.cn/cran/src/base/R-3/R-3.6.3.tar.gz
tar -zxf R-3.6.3.tar.gz
cd R-3.6.3
./configure && make && make install## 如果需要重新安装,请参考以下步骤 ##
make uninstall
./configure
make
make install
-
编译安装htop(服务器端和客户端都安装)
xz –d htop-3.3.0.tar.xz
tar xvf htop-3.3.0.tar
cd htop-3.0.5
./autogen.sh && ./configure && make && make install
-
检查安装情况(java/ant/htop)
[root@localhost ~]# ant -version
Apache Ant(TM) version 1.9.4 compiled on November 5 2018[root@localhost ~]# java -version
openjdk version "1.8.0_402"
OpenJDK Runtime Environment (build 1.8.0_402-b06)
OpenJDK 64-Bit Server VM (build 25.402-b06, mixed mode)[root@localhost ~]# htop --version
htop 3.3.0[root@localhost ~]# R --version
R version 3.6.0 (2019-04-26) -- "Planting of a Tree"
Copyright (C) 2019 The R Foundation for Statistical Computing
Platform: x86_64-redhat-linux-gnu (64-bit)
2. 准备软件
-
解压软件及JDBC驱动(解压对应的软件包)
unzip benchmarksql-5.0.zip
tar -zxvf openGauss-1.1.0-JDBC.tar.gz
-
替换默认的postgresql驱动
cd /root/soft/benchmarksql-5.0/lib/postgres/
mv postgresql-9.3-1102.jdbc41.jar postgresql-9.3-1102.jdbc41.jar.bak
mv /soft/postgresql.jar .
-
使用ant编译
cd /root/soft/benchmarksql-5.0/
[root@localhost benchmarksql-5.0]# ant
Buildfile: /root/soft/benchmarksql-5.0/build.xmlinit:[mkdir] Created dir: /root/soft/benchmarksql-5.0/buildcompile:[javac] Compiling 11 source files to /root/soft/benchmarksql-5.0/builddist:[mkdir] Created dir: /root/soft/benchmarksql-5.0/dist[jar] Building jar: /root/soft/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jarBUILD SUCCESSFUL
Total time: 2 seconds
3. 配置软件
-
配置props文件(配置文件切忌多余空格,否则会出现各种错误)
说明:进入run目录,会看到多个不同后缀名的props文件,不同的文件配置不同的数据库,由于我们需要压测postgresql和openGauss,openGauss兼容postgresql,需要配置props.pg文件。cp props.pg props.opengauss在配置文件中需要修改的包括conn,user, password(这三项用于连接指定的数据库,因此需要提前在postgresql中创建好对应的DB以及用户)
cd /root/soft/benchmarksql-5.0/run
[root@localhost run]# cp props.pg props.openGauss
[root@localhost run]# vi props.openGauss
db=postgres
driver=org.postgresql.Driver
conn=jdbc:postgresql://192.168.52.3:26000/tpcc
user=benchmarksql
password=P@ssw0rdabc
warehouses=2
loadWorkers=4
terminals=2
runTxnsPerTerminal=0
runMins=5
limitTxnsPerMin=0
terminalWarehouseFixed=false
newOrderWeight=45
paymentWeight=43
orderStatusWeight=4
deliveryWeight=4
stockLevelWeight=4
resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
osCollectorScript=./misc/os_collector_linux.py
osCollectorInterval=1
osCollectorSSHAddr=root@192.168.52.3
osCollectorDevices=net_ens33 blk_sda注释:
db=postgres 指定数据库类型,当前类型为postgres
driver=org.postgresql.Driver postgres数据库的JDBC驱动
conn=jdbc:postgresql://192.168.1.71:5496/benchmarksql postgres的连接字符串,格式为:conn=jdbc:postgresql://IP:端口/库名
user=benchmarksql 连接postgres的用户名
password=PostgreSQL5432 连接postgres的用户名的密码
warehouses=1 仓库数量,每个warehouse数据量大概在100MB左右,那么数据库大小为1000MB左右,默认1个仓库
loadWorkers=4 数据库初始化数据时候的进程数,默认4个load加载进程
terminals=1 指定终端数量,默认1个终端
runTxnsPerTerminal=10 指定压测每个终端执行的事务数量。如果该参数配置为非0时,下面的runMins参数必须设置为0
runMins=0 指定压测的时长(单位:分钟)。如果该值设置为非0值时,runTxnsPerTerminal参数必须设置为0。
limitTxnsPerMin=300 每分钟事务总数限制,该参数主要控制每分钟处理的事务数,事务数受terminals参数的影响,limitTxnsPerMin/terminals的值必须是正整数。
terminalWarehouseFixed=true 终端和仓库的绑定模式,设置为true时可以运行4.x兼容模式,意思为每个终端都有一个固定的仓库。设置为false时可以均匀的使用数据库整体配置。TPCC规定每个终端都必须有一个绑定的仓库,所以一般使用默认值true。
下面五个值的总和必须等于100,默认值为:45, 43, 4, 4,4 ,与TPC-C测试定义的比例一致,实际操作过程中,可以调整比重来适应各种场景。
newOrderWeight=45 新订单事务占总事务的45%
paymentWeight=43 支付订单事务占总事务的43%
orderStatusWeight=4 订单状态事务占总事务的4%
deliveryWeight=4 到货日期事务占总事务的4%
stockLevelWeight=4 查看现存货品的事务占总事务的4%resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS 压测期间收集系统性能数据的目录(无需修改)
osCollectorScript=./misc/os_collector_linux.py 操作系统性能收集脚本(无需修改)
osCollectorInterval=1 操作系统收集操作间隔,默认为1秒
osCollectorSSHAddr=user@dbhost 需要收集系统性能的主机
osCollectorDevices=net_eth0 blk_sda 操作系统中被收集服务器的网卡名称和磁盘名称,根据个人环境进行调整
-
配置tableCreates.sql脚本(可适当调整表的表空间分布,充分利用多块磁盘的IO)
cd /root/soft/benchmarksql-5.0/run/sql.common
[root@localhost sql.common]# cp tableCreates.sql tableCreates.sql.bak
[root@localhost sql.common]# vi tableCreates.sql
--CREATE TABLESPACE tbs1 location '/home/omm/data/tbs1';
--CREATE TABLESPACE tbs2 location '/home/omm/data/tbs2';create table bmsql_config (cfg_name varchar(30) primary key,cfg_value varchar(50)
);create table bmsql_warehouse (w_id integer not null,w_ytd decimal(12,2),w_tax decimal(4,4),w_name varchar(10),w_street_1 varchar(20),w_street_2 varchar(20),w_city varchar(20),w_state char(2),w_zip char(9)
);create table bmsql_district (d_w_id integer not null,d_id integer not null,d_ytd decimal(12,2),d_tax decimal(4,4),d_next_o_id integer,d_name varchar(10),d_street_1 varchar(20),d_street_2 varchar(20),d_city varchar(20),d_state char(2),d_zip char(9)
);create table bmsql_customer (c_w_id integer not null,c_d_id integer not null,c_id integer not null,c_discount decimal(4,4),c_credit char(2),c_last varchar(16),c_first varchar(16),c_credit_lim decimal(12,2),c_balance decimal(12,2),c_ytd_payment decimal(12,2),c_payment_cnt integer,c_delivery_cnt integer,c_street_1 varchar(20),c_street_2 varchar(20),c_city varchar(20),c_state char(2),c_zip char(9),c_phone char(16),c_since timestamp,c_middle char(2),c_data varchar(500)
);create sequence bmsql_hist_id_seq;create table bmsql_history (hist_id integer,h_c_id integer,h_c_d_id integer,h_c_w_id integer,h_d_id integer,h_w_id integer,h_date timestamp,h_amount decimal(6,2),h_data varchar(24)
);create table bmsql_new_order (no_w_id integer not null,no_d_id integer not null,no_o_id integer not null
);create table bmsql_oorder (o_w_id integer not null,o_d_id integer not null,o_id integer not null,o_c_id integer,o_carrier_id integer,o_ol_cnt integer,o_all_local integer,o_entry_d timestamp
);create table bmsql_order_line (ol_w_id integer not null,ol_d_id integer not null,ol_o_id integer not null,ol_number integer not null,ol_i_id integer not null,ol_delivery_d timestamp,ol_amount decimal(6,2),ol_supply_w_id integer,ol_quantity integer,ol_dist_info char(24)
);create table bmsql_item (i_id integer not null,i_name varchar(24),i_price decimal(5,2),i_data varchar(50),i_im_id integer
);create table bmsql_stock (s_w_id integer not null,s_i_id integer not null,s_quantity integer,s_ytd integer,s_order_cnt integer,s_remote_cnt integer,s_data varchar(50),s_dist_01 char(24),s_dist_02 char(24),s_dist_03 char(24),s_dist_04 char(24),s_dist_05 char(24),s_dist_06 char(24),s_dist_07 char(24),s_dist_08 char(24),s_dist_09 char(24),s_dist_10 char(24)
);
-
配置与数据库服务器的ssh互信
执行如下命令行:
ssh-keygen -t rsa
ssh-copy-id root@192.168.52.3 #password:P@ssw0rd123
五、配置openGauss DB主机
1. 创建数据库及用户(与前面props.openGauss文件配置保持一致)
[root@node1 ~]# su omm
[omm@node1 root]$ gsql -d postgres -p 26000 -ar
openGauss=# create user benchmarksql with sysadmin identified by 'P@ssw0rdabc';
CREATE ROLE
openGauss=# create database tpcc owner =benchmarksql encoding='UTF8';
CREATE DATABASE
2. 配置pg_hba.conf
[omm@prod ~]$ gs_guc reload -N all -I all -h "host tpcc benchmarksql 192.168.52.4/32 sha256"
/gaussdb/data/db1/pg_hba.conf
3. 备份数据目录,测试完毕后可以快速恢复
[omm@node1 ~]$ gs_ctl stop -D /gaussdb/data/db1
[omm@node1 ~]$ cp -r /gaussdb/data/db1 /gaussdb/data/db1_bak
[omm@node1 ~]$ gs_ctl start -D /gaussdb/data/db1
下一篇我们将分享发起测试及测试结果~
相关文章:

openGauss使用BenchmarkSQL进行性能测试(上)
一、前言 本文提供openGauss使用BenchmarkSQL进行性能测试的方法和测试数据报告。 BenchmarkSQL,一个JDBC基准测试工具,内嵌了TPC-C测试脚本,支持很多数据库,如PostgreSQL、Oracle和Mysql等。 TPC-C是专门针对联机交易处理系统…...
Java的线程池机制
Java的线程池机制是用来管理和调度多个线程的工具。通过线程池,可以避免频繁地创建和销毁线程,提高线程的复用率,减少资源消耗。 Java中提供了几种不同类型的线程池: 1、FixedThreadPool(固定大小线程池)…...

EasyCode 插件的具体使用
前言 EasyCode 是基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板(基于velocity)来生成各种你想要的代码。通常用于生成Entity、Dao、Service、Controller。如果你动手能力强还可以用于生成HTML、JS、PHP等代码。理…...

Ypay源支付6.9无授权聚合免签系统可运营源码
YPay是一款专为个人站长设计的聚合免签系统,YPay基于高性能的ThinkPHP 6.1.2 Layui PearAdmin架构,提供了实时监控和管理的功能,让您随时随地掌握系统运营情况。 说明 Ypay源支付6.9无授权聚合免签系统可运营源码 已搭建测试无加密版本…...

SpringBoot+Vue项目报错(问题已解决)
1、错误日志 2、分析原因: JWT strings must contain exactly 2 period characters. Found: 0 JWT字符串必须包含2个句号字符。发现:0 分析:可以判断出大概可能是token格式出现了问题 3、参考 http://t.csdnimg.cn/hfEiY 4、检查后端代码是否出现问…...
DEAP 自定义交叉操作
在遗传算法中,使用DEAP库来实现自定义的交叉操作可以非常灵活。如果你想模拟多个染色体的情况,通过在染色体的特定区间进行交叉,你需要自定义一个交叉函数。以下是一个示例,展示如何实现一个自定义的交叉函数,该函数允…...
ByText
getByText, queryByText, getAllByText, queryAllByText, findByText, findAllByText API getByText(// If youre using screen, then skip the container argument:container: HTMLElement,text: TextMatch,options?: {selector?: string *,exact?: boolean true,igno…...

Vcenter esxi web界面访问提示权限被拒绝
一、问题现象 原因 应该是在vCenter中添加主机的时候,将锁定模式设置成了严格。 二、解决过程 2.1 方式一 BMC登录主机,连接显示器和键盘。 输入账号密码,按F2进行设置,将会打开一个界面,第一个选项是设置密码&…...

掌握FilterOutputStream类!
咦咦咦,各位小可爱,我是你们的好伙伴——bug菌,今天又来给大家普及Java IO相关知识点了,别躲起来啊,听我讲干货还不快点赞,赞多了我就有动力讲得更嗨啦!所以呀,养成先点赞后阅读的好…...

YOLOv8改进 | 图像去雾 | 特征融合注意网络FFA-Net增强YOLOv8对于模糊图片检测能力(北大和北航联合提出)
一、本文介绍 本文给大家带来的改进机制是由北大和北航联合提出的FFA-net: Feature Fusion Attention Network for Single Image Dehazing图像增强去雾网络,该网络的主要思想是利用特征融合注意力网络(Feature Fusion Attention Network)直接…...

Python (用户登录、身份归属地查询添加异常处理、绘制多角星、电影信息提取)
任务一:用户登录 登录系统通常分为普通用户与管理员权限,在用户登录系统时,可以根据自身权限进行选择登录。本任务要求实现一个用户登录的程序,该程序分为管理员用户与普通用户,其中管理员账号密码在程序中设定&#…...

Set cancelled by MemoryScratchSinkOperator
Bug信息 Caused by: com.starrocks.connector.spark.exception.StarrocksInternalException: StarRocks server StarRocks BE{host=10.9.14.39, port=9060} internal failed, status code [CANCELLED] error message is [Set cancelled by MemoryScratchSinkOperator]Bug产生的…...

Python 查找PDF中的指定文本并高亮显示
在处理大量PDF文档时,有时我们需要快速找到特定的文本信息。本文将提供以下三个Python示例来帮助你在PDF文件中快速查找并高亮指定的文本。 查找并高亮PDF中所有的指定文本查找并高亮PDF某个区域内的指定文本使用正则表达式搜索指定文本并高亮 本文将用到国产第三方…...

岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序应用
有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便,但其使用对用户来说往往是一个“黑箱子”。相比而言,开源的有限元程序计算方法透明、计算过程可控,…...
解决 :nvrtc: error: invalid value for --gpu-architecture (-arch)
核心:在显卡安装的cuda版本适配的pytorch中,更换pytorch的版本 刚遇到这个错误时,在网上搜索了一下,感谢博主1和博主2的解决方法带给我的启发。 标题服务器cuda是11.3版本,配置其他环境“御用”的pytorch安装语句 co…...

Rust教程:How to Rust-从开始之前到Hello World
本文为第0篇 专栏简介 本专栏是优质Rust技术专栏,推荐精通一门技术栈的蟹友,不建议基础的同学(无基础学Rust也是牛人[手动捂脸]) 感谢Rust圣经开源社区的同学,为后来者提供了非常优秀的Rust学习资源 本文使用&…...

浅谈人工智能
☕️各位观众老爷好,路过点个免费的赞再走呗!❤️❤️(*•̀ᴗ•́*)و 前言 随着2024年的到来,人工智能领域正迎来前所未有的变革和发展。随着计算能力的增强、大数据的积累以及机器学习算法的进步, AI的定义和本质 人工智能…...

OpenFeign服务接口调用
OpenFeign服务接口调用 1、OpenFeign简介 Feign是一个声明性web服务客户端。它使编写web服务客户端变得更容易。使用Feign创建一个接口并对其进行注释。它具有可插入的注释支持,包括Feign注释和JAX-RS注释。Feign还支持可插拔编码器和解码器。Spring Cloud添加…...

SQLiteC/C++接口详细介绍之sqlite3类(五)
快速跳转文章列表:SQLite—系列文章目录 上一篇:SQLiteC/C接口详细介绍之sqlite3类(四) 下一篇:SQLiteC/C接口详细介绍之sqlite3类(六)(未发表) 14.sqlite3_busy_handle…...

Linux 之二:CentOS7 的 IP 常用命令和配置及 xshell 基本使用方法
1. 进入虚拟机 点击右键---进入终端--输入 ip adrr 或 ifconfig 查看ip地址 下面输入命令 ifconfig(注意:不是 ipconfig ) 或 ip addr 来查看当前系统 IP 查看到IP 后,比如:上面是 192.168.184.137 1.1 IP 常用命令…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
SkyWalking 10.2.0 SWCK 配置过程
SkyWalking 10.2.0 & SWCK 配置过程 skywalking oap-server & ui 使用Docker安装在K8S集群以外,K8S集群中的微服务使用initContainer按命名空间将skywalking-java-agent注入到业务容器中。 SWCK有整套的解决方案,全安装在K8S群集中。 具体可参…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径
目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
大语言模型(LLM)中的KV缓存压缩与动态稀疏注意力机制设计
随着大语言模型(LLM)参数规模的增长,推理阶段的内存占用和计算复杂度成为核心挑战。传统注意力机制的计算复杂度随序列长度呈二次方增长,而KV缓存的内存消耗可能高达数十GB(例如Llama2-7B处理100K token时需50GB内存&a…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
站群服务器的应用场景都有哪些?
站群服务器主要是为了多个网站的托管和管理所设计的,可以通过集中管理和高效资源的分配,来支持多个独立的网站同时运行,让每一个网站都可以分配到独立的IP地址,避免出现IP关联的风险,用户还可以通过控制面板进行管理功…...
探索Selenium:自动化测试的神奇钥匙
目录 一、Selenium 是什么1.1 定义与概念1.2 发展历程1.3 功能概述 二、Selenium 工作原理剖析2.1 架构组成2.2 工作流程2.3 通信机制 三、Selenium 的优势3.1 跨浏览器与平台支持3.2 丰富的语言支持3.3 强大的社区支持 四、Selenium 的应用场景4.1 Web 应用自动化测试4.2 数据…...