发布网友 发布时间:2022-04-10 18:36
共2个回答
懂视网 时间:2022-04-10 22:57
1.创建用户和数据库
[postgres#localhost ~] $ psql postgres
psql (9.5.2)
Type "help" for help.
postgres=# CREATE USER benchmarksql WITH ENCRYPTED PASSWORD ‘changeme‘;
postgres=# CREATE DATABASE benchmarksql OWNER benchmarksql;
postgres=# q
2.解压
[postgres@localhost run]$unzip benchmarksql-5.0.zip
[postgres@localhost ~] $ cd benchmarksql-5.0
[postgres@localhost benchmarksql-5.0]$ ant
bash: ant: command not found...
解决方法:
安装ant
[root@localhost etc]# yum install ant
[postgres@localhost benchmarksql-5.0]$ ant
Buildfile: /tmp/benchmarksql-5.0/build.xml
init:
[mkdir] Created dir: /tmp/benchmarksql-5.0/build
compile:
[javac] Compiling 11 source files to /tmp/benchmarksql-5.0/build
dist:
[mkdir] Created dir: /tmp/benchmarksql-5.0/dist
[jar] Building jar: /tmp/benchmarksql-5.0/dist/BenchmarkSQL-5.0.jar
BUILD SUCCESSFUL
Total time: 2 seconds
3.修改文件
[postgres@localhost benchmarksql] $ cd run
[postgres@localhost run] $ cp props.pg my_postgres.properties
[postgres@localhost run] $ vi my_postgres.properties
[postgres@localhost run] $
4.构建模式和初始数据库加载
[postgres@localhost run]$ ./runDatabaseBuild.sh my_postgres.properties
# ------------------------------------------------------------
# Loading SQL file ./sql.common/tableCreates.sql
# ------------------------------------------------------------
create table bmsql_config (
cfg_name varchar(30) primary key,
cfg_value varchar(50)
);
Starting BenchmarkSQL LoadData
driver=org.postgresql.jdbc.Driver
conn=jdbc:postgresql://localhost:5866/benchmarksql
user=benchmarksql
password=***********
warehouses=1
loadWorkers=4
fileLocation (not defined)
csvNullValue (not defined - using default ‘NULL‘)
Worker 000: Loading ITEM
Worker 001: Loading Warehouse 1
Worker 000: Loading ITEM done
Worker 001: Loading Warehouse 1 done
# ------------------------------------------------------------
# Loading SQL file ./sql.common/indexCreates.sql
# ------------------------------------------------------------
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/extraHistID.sql
# ------------------------------------------------------------
-- ----
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/buildFinish.sql
# ------------------------------------------------------------
-- ----
-- Extra commands to run after the tables are created, loaded,
-- indexes built and extra‘s created.
-- PostgreSQL version.
-- ----
vacuum analyze;
如果这一步出现这样的错误说明你没有安装ant,先安装ant
[postgres@localhost run]$ ./runDatabaseBuild.sh my_postgres.properties
# ------------------------------------------------------------
# Loading SQL file ./sql.common/tableCreates.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
Error: Could not find or load main class LoadData
# ------------------------------------------------------------
# Loading SQL file ./sql.common/indexCreates.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.common/foreignKeys.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/extraHistID.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/buildFinish.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
[postgres@localhost run]$ ./runDatabaseBuild.sh my_postgres.properties
# ------------------------------------------------------------
# Loading SQL file ./sql.common/tableCreates.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
Error: Could not find or load main class LoadData
# ------------------------------------------------------------
# Loading SQL file ./sql.common/indexCreates.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.common/foreignKeys.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/extraHistID.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
# ------------------------------------------------------------
# Loading SQL file ./sql.postgres/buildFinish.sql
# ------------------------------------------------------------
Error: Could not find or load main class ExecJDBC
[postgres@localhost run]$ ant
Buildfile: build.xml does not exist!
Build failed
4.运行配置
[postgres@localhost run]$ ./runBenchmark.sh my_postgres.properties
The benchmark should run for the number of configured concurrent
connections (terminals) and the duration or number of transactions.
The end result of the benchmark will be reported like this:
01:58:09,081 [Thread-1] INFO jTPCC : Term-00,
01:58:09,082 [Thread-1] INFO jTPCC : Term-00, Measured tpmC (NewOrders) = 179.55
01:58:09,082 [Thread-1] INFO jTPCC : Term-00, Measured tpmTOTAL = 329.17
01:58:09,082 [Thread-1] INFO jTPCC : Term-00, Session Start = 2016-05-25 01:58:07
01:58:09,082 [Thread-1] INFO jTPCC : Term-00, Session End = 2016-05-25 01:58:09
01:58:09,082 [Thread-1] INFO jTPCC : Term-00, Transaction Count = 10
到这一步已经安装完成了,只要修改my_postgres.properties的参数就可以进行压力测试了
5.重建运行数据库的方法(如果你修改了配置文件中的warehouse或者load的值都需要重建数据库)
[postgres@localhost run]$ ./runDatabaseDestroy.sh my_postgres.properties
[postgres@localhost run]$ ./runDatabaseBuild.sh my_postgres.properties
6.生成图表
用run目录下的generateReport.sh脚本去执行压力测试得到的结果目录 my_result_xxx
如:[postgres@localhost run]$ ./generateReport.sh my_result_2017-04-18_111400/
执行的时候是需要提前安装R语言环境的。
7.R语言环境的安装
解压
./configure
make
make过程中可能出现报错,几乎就是缺少对应的安装程序,用yum安装就好 。如X11 则要安装yum install yum install libX*
总之,缺什么就安装什么就好
make install
安装完成后
进入R环境
[postgres@localhost run]$ R
R version 3.0.0 (2013-04-03) -- "Masked Marvel"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type ‘license()‘ or ‘licence()‘ for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type ‘contributors()‘ for more information and
‘citation()‘ on how to cite R or R packages in publications.
Type ‘demo()‘ for some demos, ‘help()‘ for on-line help, or
‘help.start()‘ for an HTML browser interface to help.
Type ‘q()‘ to quit R.
> capabilities()
jpeg png tiff tcltk X11 aqua http/ftp sockets
TRUE TRUE TRUE FALSE FALSE FALSE TRUE TRUE
libxml fifo cledit iconv NLS profmem cairo
TRUE TRUE TRUE TRUE TRUE FALSE TRUE
>
如果像上述显示的结果 png 为true x11位true就可以了
执行文件生成图表数据
[postgres@localhost run]$ ./generateReport.sh my_result_2017-04-18_132736/
Generating my_result_2017-04-18_132736//tpm_nopm.png ... OK
Generating my_result_2017-04-18_132736//latency.png ... OK
Generating my_result_2017-04-18_132736//cpu_utilization.png ... OK
Generating my_result_2017-04-18_132736//dirty_buffers.png ... OK
Generating my_result_2017-04-18_132736//blk_sda_iops.png ... OK
Generating my_result_2017-04-18_132736//blk_sda_kbps.png ... OK
Generating my_result_2017-04-18_132736//net_enp3s0f0_iops.png ... OK
Generating my_result_2017-04-18_132736//net_enp3s0f0_kbps.png ... OK
Generating my_result_2017-04-18_132736//report.html ... OK
就可以看到目录下生成的图片和网页了,根据里面的内容来分析数据。
[postgres@localhost my_result_2017-04-18_132736]$ ls
blk_sda_iops.png blk_sda_kbps.png cpu_utilization.png data dirty_buffers.png latency.png net_enp3s0f0_iops.png net_enp3s0f0_kbps.png report.html run.properties tpm_nopm.png
执行生成文件出现以下错误
[postgres@localhost run]$ ./generateReport.sh my_result_2017-04-18_111724
Generating my_result_2017-04-18_111724/tpm_nopm.png ... Error in .External2(C_X11, paste("png::", filename, sep = ""), g$width, :
unable to start device PNG
Calls: png
In addition: Warning message:
In png("tpm_nopm.png", width = 1200, height = 400) :
unable to open connection to X11 display ‘‘
Execution halted
ERROR
R version 3.0.0 (2013-04-03) -- "Masked Marvel"
Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type ‘license()‘ or ‘licence()‘ for distribution details.
Natural language support but running in an English locale
R is a collaborative project with many contributors.
Type ‘contributors()‘ for more information and
‘citation()‘ on how to cite R or R packages in publications.
Type ‘demo()‘ for some demos, ‘help()‘ for on-line help, or
‘help.start()‘ for an HTML browser interface to help.
Type ‘q()‘ to quit R.
> # ----
> # R graph to show tpmC and tpmTOTAL.
> # ----
>
> # ----
> # Read the runInfo.csv file.
> # ----
> runInfo <- read.csv("data/runInfo.csv", head=TRUE)
>
> # ----
> # Determine the grouping interval in seconds based on the
> # run duration.
> # ----
> xmax <- runInfo$runMins
> for (interval in c(1, 2, 5, 10, 20, 60, 120, 300, 600)) {
+ if ((xmax * 60) / interval <= 1000) {
+ break
+ }
+ }
> idiv <- interval * 1000.0
>
> # ----
> # Read the result.csv and then filter the raw data
> # for != DELIVERY_BG and == NEW_ORDER transactions.
> # ----
> data1 <- read.csv("data/result.csv", head=TRUE)
> total1 <- data1[data1$ttype != ‘DELIVERY_BG‘, ]
> neworder1 <- data1[data1$ttype == ‘NEW_ORDER‘, ]
>
> # ----
> # Aggregate the counts of both data sets grouped by second.
> # ----
> countTotal <- setNames(aggregate(total1$latency, list(elapsed=trunc(total1$elapsed / idiv) * idiv), NROW),
+ c(‘elapsed‘, ‘count‘));
> countNewOrder <- setNames(aggregate(neworder1$latency, list(elapsed=trunc(neworder1$elapsed / idiv) * idiv), NROW),
+ c(‘elapsed‘, ‘count‘));
>
> # ----
> # Determine the ymax by increasing in sqrt(2) steps until the
> # maximum of tpmTOTAL fits, then make sure that we have at least
> # 1.2 times that to give a little head room for the legend.
> # ----
> ymax_count <- max(countTotal$count) * 60.0 / interval
> ymax <- 1
> sqrt2 <- sqrt(2.0)
> while (ymax < ymax_count) {
+ ymax <- ymax * sqrt2
+ }
> if (ymax < (ymax_count * 1.2)) {
+ ymax <- ymax * 1.2
-
> # Start the output image.
> # ----
> png("tpm_nopm.png", width=1200, height=400)
Generating my_result_2017-04-18_111724/report.html ... ./generateReport.sh: line 161: data/tx_summary.csv: No such file or directory
grep: data/tx_summary.csv: No such file or directory
grep: data/tx_summary.csv: No such file or directory
grep: data/tx_summary.csv: No such file or directory
OK
因为你的R语言环境没有按照好,导致出现这中问题,建议安装好对应的包后,重新编译安装R语言。
benchmark在postgresql上的安装及使用
标签:like jpeg sqli unzip postgre dir idt clear add
热心网友 时间:2022-04-10 20:05
立即开始
快捷安装
TDengine 包括服务端、客户端和周边生态工具软件,目前 2.0 版服务端仅在 Linux 系统上安装和运行,后续将支持 Windows、macOS 等系统。客户端可以在 Windows 或 Linux 上安装和运行。在任何操作系统上的应用都可以使用 RESTful 接口连接服务端程序 taosd,其中 2.4 之后版本默认使用单独运行的独立组件 taosAdapter 提供 http 服务和更多数据写入方式。taosAdapter 需要手动启动。 之前版本 TDengine 服务端,以及所有服务端lite版,均使用内置 http 服务。
TDengine 支持 X64/ARM64/MIPS64/Alpha64 硬件平台,后续将支持 ARM32、RISC-V 等 CPU 架构。
通过 Docker 容器安装
docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp tdengine/tdengine
详细操作方法请参照 通过 Docker 快速体验 TDengine。
注:暂时不建议生产环境采用 Docker 来部署 TDengine 的客户端或服务端,但在开发环境下或初次尝试时,使用 Docker 方式部署是十分方便的。特别是,利用 Docker,可以方便地在 macOS 和 Windows 环境下尝试 TDengine。
从 2.4.0.10 开始,除 taosd 以外,Docker 镜像还包含:taos、taosAdapter、taosmp、taosBenchmark、TDinsight 安装脚本和示例代码。启动 Docker 容器时,将同时启动 taosAdapter 和 taosd,实现对 RESTful 的支持。
通过安装包安装
TDengine 的安装非常简单,从下载到安装成功仅仅只要几秒钟。
为方便使用,从 2.4.0.10 开始,标准的服务端安装包包含了 taos、taosd、taosAdapter、taosmp、taosBenchmark、TDinsight 安装脚本和示例代码;如果您只需要用到服务端程序和客户端连接的 C/C++ 语言支持,也可以仅下载 lite 版本的安装包。
在安装包格式上,我们提供 tar.gz, rpm 和 deb 格式,为企业客户提供 tar.gz 格式安装包,以方便在特定操作系统上使用。需要注意的是,rpm 和 deb 包不含 taosmp、taosBenchmark 和 TDinsight 安装脚本,这些工具需要通过安装 taosTool 包获得。
发布版本包括稳定版和 Beta 版,Beta 版含有更多新功能。正式上线或测试建议安装稳定版。您可以根据需要选择下载:
TDengine-server-2.4.0.12-Linux-x64.rpm (14.5 M)
TDengine-server-2.4.0.12-Linux-x64.deb (12.8 M)
TDengine-server-2.4.0.12-Linux-x64.tar.gz (15.5 M)
TDengine-server-2.4.0.12-Linux-x64-Lite.tar.gz (3.4 M)
TDengine-server-2.3.5.0-beta-Linux-x64-Lite.tar.gz (3 M)
TDengine-server-2.3.5.0-beta-Linux-x64.rpm (18.4 M)
TDengine-server-2.3.5.0-beta-Linux-x64.deb (16.8 M)
TDengine-server-2.3.5.0-beta-Linux-x64.tar.gz (18.8 M)
具体的安装方法,请参见 TDengine 多种安装包的安装和卸载 以及 视频教程。
请点击这里查看 release notes。
使用 apt-get 安装
如果使用 Debian 或 Ubuntu 系统,也可以使用 apt-get 工具从官方仓库安装,设置方法为:
wget -qO - http://repos.taosdata.com/tdengine.key | sudo apt-key add -echo "deb [arch=amd64] http://repos.taosdata.com/tdengine-stable stable main" | sudo tee /etc/apt/sources.list.d/tdengine-stable.list[ 如果安装 Beta 版需要安装包仓库 ] echo "deb [arch=amd64] http://repos.taosdata.com/tdengine-beta beta main" | sudo tee /etc/apt/sources.list.d/tdengine-beta.listsudo apt-get updateapt-cache policy tdenginesudo apt-get install tdengine仅安装客户端
如果客户端和服务端运行在不同的电脑上,可以单独安装客户端。下载时请注意,所选择的客户端版本号应该和在上面下载的服务端版本号严格匹配。Linux 和 Windows 安装包如下(其中 lite 版本的安装包仅带有 C/C++ 语言的连接支持,而标准版本的安装包还包含和示例代码):
TDengine-client-2.4.0.12-Linux-x64.tar.gz (8.2 M)
TDengine-client-2.4.0.12-Windows-x64.exe (9 M)
TDengine-client-2.4.0.12-Windows-x86.exe (9 M)
TDengine-client-2.4.0.12-Linux-x64-Lite.tar.gz (3.1 M)
TDengine-client-2.3.5.0-beta-Linux-x64-Lite.tar.gz (2.7 M)
TDengine-client-2.3.5.0-beta-Linux-x64.tar.gz (7.6 M)
TDengine-client-2.3.5.0-beta-Windows-x64.exe (8.9 M)
TDengine-client-2.3.5.0-beta-Windows-x86.exe (8.8 M)
通过源码安装
如果您希望对 TDengine 贡献代码或对内部实现感兴趣,请参考我们的 TDengine GitHub 主页 下载源码构建和安装.
下载其他组件、最新 Beta 版及之前版本的安装包,请点击这里
轻松启动
安装成功后,用户可使用 systemctl 命令来启动 TDengine 的服务进程。
systemctl start taosd检查服务是否正常工作:
systemctl status taosd如果 TDengine 服务正常工作,那么您可以通过 TDengine 的命令行程序 taos 来访问并体验 TDengine。
注意:
systemctl 命令需要 root 权限来运行,如果您非 root 用户,请在命令前添加 sudo 。
为更好的获得产品反馈,改善产品,TDengine 会采集基本的使用信息,但您可以修改系统配置文件 taos.cfg 里的配置参数 telemetryReporting,将其设为 0,就可将其关闭。
TDengine 采用 FQDN(一般就是 hostname)作为节点的 ID,为保证正常运行,需要给运行 taosd 的服务器配置好 hostname,在客户端应用运行的机器配置好 DNS 服务或 hosts 文件,保证 FQDN 能够解析。
systemctl stop taosd 指令在执行后并不会马上停止 TDengine 服务,而是会等待系统中必要的落盘工作正常完成。在数据量很大的情况下,这可能会消耗较长时间。
TDengine 支持在使用 systemd 做进程服务管理的 Linux 系统上安装,用 which systemctl 命令来检测系统中是否存在 systemd 包:
which systemctl如果系统中不支持 systemd,也可以用手动运行 /usr/local/taos/bin/taosd 方式启动 TDengine 服务。
使用 TDengine 客户端程序
执行 TDengine 客户端程序,您只要在 Linux 终端执行 taos 即可。
taos如果连接服务成功,将会打印出欢迎消息和版本信息。如果失败,则会打印错误消息出来(请参考 FAQ 来解决终端连接服务端失败的问题)。客户端的提示符号如下:
taos>在 TDengine 客户端中,用户可以通过 SQL 命令来创建/删除数据库、表等,并进行插入查询操作。在终端中运行的 SQL 语句需要以分号结束来运行。示例:
CREATE DATABASE demo;USE demo;CREATE TABLE t (ts TIMESTAMP, speed INT);INSERT INTO t VALUES ('2019-07-15 00:00:00', 10);INSERT INTO t VALUES ('2019-07-15 01:00:00', 20);SELECT * FROM t; ts | speed |======================================== 2019-07-15 00:00:00.000 | 10 | 2019-07-15 01:00:00.000 | 20 |Query OK, 2 row(s) in set (0.003128s)除执行 SQL 语句外,系统管理员还可以从 TDengine 客户端进行检查系统运行状态、添加删除用户账号等操作。
命令行参数
您可通过配置命令行参数来改变 TDengine 客户端的行为。以下为常用的几个命令行参数:
-c, --config-dir: 指定配置文件目录,默认为 /etc/taos
-h, --host: 指定服务的 FQDN 地址或 IP 地址,默认为连接本地服务
-s, --commands: 在不进入终端的情况下运行 TDengine 命令
-u, --user: 连接 TDengine 服务端的用户名,缺省为 root
-p, --password: 连接 TDengine 服务端的密码,缺省为 taosdata
-?, --help: 打印出所有命令行参数
示例:
taos -h h1.taos.com -s "USE db; SHOW TABLES;"运行 SQL 命令脚本
TDengine 终端可以通过 SOURCE 命令来运行 SQL 命令脚本。
taos> SOURCE <filename>;taos shell 小技巧
可以使用上下光标键查看历史输入的指令
修改用户密码:在 shell 中使用 ALTER USER 命令,缺省密码为 taosdata
Ctrl+C 中止正在进行中的查询
执行 RESET QUERY CACHE 可清除本地缓存的表 schema
批量执行 SQL 语句。可以将一系列的 shell 命令(以英文 ; 结尾,每个 SQL 语句为一行)按行存放在文件里,在 shell 里执行命令 SOURCE <file-name> 自动执行该文件里所有的 SQL 语句
输入 q 回车,退出 taos shell
TDengine 极速体验
使用 taosBenchmark 体验写入速度
启动 TDengine 的服务,在 Linux 终端执行 taosBenchmark (曾命名为 taosdemo)。taosBenchmark 在 TDengine 2.4.0.7 和之前发布版本在 taosTools 安装包中发布提供,在后续版本中 taosBenchmark 将在 TDengine 标准安装包中发布。
taosBenchmark该命令将在数据库 test 下面自动创建一张超级表 meters,该超级表下有 1 万张表,表名为 "d0" 到 "d9999",每张表有 1 万条记录,每条记录有 (ts, current, voltage, phase) 四个字段,时间戳从 "2017-07-14 10:40:00 000" 到 "2017-07-14 10:40:09 999",每张表带有标签 location 和 groupId,groupId 被设置为 1 到 10, location 被设置为 "beijing" 或者 "shanghai"。
这条命令很快完成 1 亿条记录的插入。具体时间取决于硬件性能,即使在一台普通的 PC 服务器往往也仅需十几秒。
taosBenchmark 详细功能列表
taosBenchmark 命令本身带有很多选项,配置表的数目、记录条数等等,请执行 taosBenchmark --help 详细列出。您可以设置不同参数进行体验。
taosBenchmark 详细使用方法请参照 如何使用 taosBenchmark 进行性能测试。
使用 taos shell 体验查询速度