Postgresql go语言和java性能对比和SQL SERVER比怎么样

使用BenchmarkSQL测试PostgreSQL
之前转载过师兄的一篇博文《linux下使用Benchmark测试PostgreSQL》,上面讲的很详细,自己也按照过上面的方法演练了一边,不过也发现了其中的一个小问题,这里我在根据现有的各种资料重新整理一下使用Benchmark测试PostgreSQL
TPC-C性能的相关问题。
一、BenchmarkSQL是什么?
BenchmarkSQL是一款经典的开源数据库测试工具,内嵌了TPCC测试脚本,可以对EnterpriseDB、PostgreSQL、MySQL、Oracle以及SQL
Server等数据库直接进行测试。
二、测试前提
安装JDK。因为BenchmarkSQL本身是使用Java语言编写的,所以如果在Linux系统下还没有安装JDK的话,我们首先需要对其进行安装;
安装PostgreSQL数据库系统。俗话说巧妇难为无米之炊,测试之前肯定需要有测试对象,本文是测试PG系统,故需安装有PG;
3. 安装BenchmarkSQL
可到http://sourceforge.net中搜索BenchmarkSQL即可下到,windows,linux版均有。我下载的是linux版的软件包BenchmarkSQL-2.3.3.zip,unzip解压后可以在README文件中看到该软件的使用说明,下面用中文具体介绍一下它的使用方法。
三、测试步骤
1. 启动待测试的数据库系统,这里即指启动PostgreSQL
在BenchmarkSQL-2.3.3/run目录下找到postgres.properties配置文件,修改该文件如下:
driver=org.postgresql.Driver
conn=jdbc:postgresql://localhost:5432/test&&&&&&&
#链接数据库地址
user=postgres&&&&&
#链接数据库用户名
password=password&&&
如果想测试其他数据库系统,则修改其他相应的配置文件即可,如oracle.properties等等。
3. 创建TPC-C基础表(即上篇博文中介绍的TPC-C模拟场景中9张表)
命令: runSQL.sh postgres.properties sqlTableCreates
4. 向数据库中导入指定大小的数据(参考资料2中此步有个小问题,多写一个等号)
命令:loadData.sh postgres.properties numWarehouses 10
numWarehouse指的是仓库数(具体含义见上篇博文),默认为1,导入9张表的数据大小大概70多M,
当 numWarehouse为10时,数据大小可以近似当作1GB数据。
5. 为基础表创建必要的索引
命令: runSQL.sh postgres.properties sqlIndexCreates
6. 运行runBenchmark.sh借助GUI程序测试数据库
命令:runBenchmark.sh postgres.properties
注意:不要忘记设置图形界面的仓库数时要与第4步中设置的数量相符;此外,测试的结果报告除了显示在图形界面有显示以外,还在run/reports目录下有备份,随时可以查阅。
四、BenchmarkSQL界面说明
Control-Database:配置所要链接的数据库,默认会读取之前我们修改的配置文件,故此处不用动
&Control-Terminals:配置终端数,仓库数,是否显示Debug信息,指定测试时间以及每终端事务等(每终端事务执行方式目前我也没理解,望交流)
&Control-Weights:配置TPC-C测试中五中事务的比重(界面中只要配置4种),一般按默认比例测试即可
&Control-Controls:控制器设置,点击Create
Terminals创建一个终端;点击Start Transaction开始基准测试,点击Stop
Transaction停止基准测试
&Error:错误信息显示
&Terminals:各个终端日志查看
测试完后在界面下方会显示简要的测试结果,包括平均tpmC值(每分钟执行的事务数),当前tpmC值,内存使用情况等等;出结果以后尽量记录下来,以为之后如果乱点界面按钮的话,测试结果将会被重写(感觉是一个bug);
2.运行过程中如果想要修改终端数等参数,最好关闭GUI界面,重新运行runBenchmark.bat
参考资料:
1..cn/s/blog_9wsh.html
2..cn/s/blog_48c95ag.html
3./p-.html
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用户名:maclean_007
文章数:1318
访问量:68653
注册日期:
阅读量:1297
阅读量:3317
阅读量:450405
阅读量:1134961
51CTO推荐博文
最近(2010 March) redhat公司release了一份对PostgreSQL和SQLSERVER的性能检测报告,使用相同的HP ProLiant DL370 G6(Intel Xeon W5580)主机,操作系统是Redhat Enterprise Linux 5:Windows Server 2008 EPostgreSQL 部分参数进行了优化,包括checkpoint_timeout,effective_cache_size等,值得注意的是关掉了自动vacuum(autovacuum=false).测试结果是PostgreSQL略有优势,见图:
.本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:未分类┆阅读(0)┆评论(0)1、 测试目的
通过运行标准测试程序TPC-B和TPC-C,确定在不同参数和不同版本下(8.2.14 VS 8.4.2)的性能的不同,为eCop CM上PostgreSQL数据库的参数配置和版本选择提供参考。
测试平台为:
硬件配置:CPU E4600 双核2.4G 2G RAM 160G SATA * 2
操作系统:Ubuntu 9.10 Server
文件系统:Ext3
数据库:PostgreSQL 8.2.14和8.4.2
采用源码编译方式安装,GCC版本4.4.1
2、 测试和数据
2.1 TPC-B(Pgbench)
2.1.1&测试方法
测试参数:./pgbench -i -s 20 pgbench 将负载因子设定为20
初始化数据库表容量:
able # of rows
branches 20
tellers 200
accounts 2000000
数据库物理大小:数据库总大小288MB,其中表accounts 248MB
每次事物执行的SQL语句:
2. UPDATE accounts SET abalance = abalance + :delta WHERE aid = :
3. SELECT abalance FROM accounts WHERE aid = :
4. UPDATE tellers SET tbalance = tbalance + :delta WHERE tid = :
5. UPDATE branches SET bbalance = bbalance + :delta WHERE bid = :
6. INSERT INTO history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);
测试方法:./pgbench -t 2000 -c 20 -U postgres pgbench 模拟20个并发用户,每个用户执行2000次事务。每种配置参数执行三次,记录TPS值。
2.1.2&测试结果(8.2.14)
PostgreSQL 8.2.14的Pgbench测试结果(单位TPS/每秒钟事务数量),重点关注的参数:shared_buffers、effective_cache_size、wal_buffers、checkpoint_segments。
调整WAL日志参数
wal_buffers = 1024kB (默认64kb)
checkpoint_segments = 32 (默认3)
将WAL日志在放在第二块硬盘
调整内存参数
shared_buffers = 256MB(默认32MB)
work_mem = 10MB(默认1M)
effective_cache_size = 512MB(默认128M)
调整内存参数
shared_buffers = 512MB
work_mem = 10MB
effective_cache_size = 1024MB
关闭WAL日志
2.1.3&测试结果(8.4.2)
PostgreSQL 8.4.2的Pgbench测试结果(单位TPS/每秒钟事务数量),重点关注的参数:shared_buffers、effective_cache_size、wal_buffers、checkpoint_segments。
调整WAL日志参数
wal_buffers = 1024kB (默认64kb)
checkpoint_segments = 32 (默认3)
checkpoint_completion_target=0.9(默认0.5)
将WAL日志在放在第二块硬盘
调整内存参数
shared_buffers = 256MB(默认32MB)
work_mem = 10MB(默认1M)
effective_cache_size = 512MB(默认128M)
调整内存参数
shared_buffers = 512MB
work_mem = 10MB
effective_cache_size = 1024MB
关闭WAL日志
注*执行测试3的时候,数据变化非常大,执行多次也如此,最小值1214,最大值2010,很不稳定
2.1.4&测试性能数据对比
2.1.5&测试数据分析
1) 默认参数配置情况下,性能都很差,不管是8.2.14还是8.4.2,见测试1数据
2) 增大WAL日志参数中的checkpoint_segments的值可以显著提升性能,提升1倍以上。增大checkpoint_segments的实际效果是数据库写入日志更快,见测试2数据
3) 将WAL日志在放在第二块硬盘以后,降低了I/0的竞争,性能提升显著,提升幅度在1倍左右,见测试3数据
4) 增加内存参数,使得在内存中基本可以放入整个数据库表的内容,性能提升明显,超过50%,见测试4数据
5) 在内存的可以装入整个数据库表的情况下,再增大内存参数,对性能提升没有影响,见测试5数据
6) 关闭预写式日志的情况下,可以提升20%左右的性能,见测试6数据
7) 8.4.2的性能相对8.2.14有性能提升,最多15%
2.2 TPC-C(BenchMark Factory)
2.2.1&测试方法
采用BenchMark Factory用ODBC连接数据库,初始化负载因子2,初始化表容量
测试分别模拟5个、10个、15个和20个并发连接,进行测试。
参数配置:
shared_buffers = 512MB
work_mem = 10MB
effective_cache_size = 1024MB
fsync = on/off 打开/关闭WAL
2.2.2&测试结果(8.2.14)
PostgreSQL 8.2.14的TPC-C测试结果(关闭WAL)
并发线程数
TPS(每秒钟事务量)
平均响应时间(ms)
2.2.3&测试结果(8.4.2)
PostgreSQL 8.4.2的TPC-C测试结果(关闭WAL)
并发线程数
TPS(每秒钟事务量)
平均响应时间(ms)
PostgreSQL 8.4.2的TPC-C测试结果(开启WAL)
并发线程数
TPS(每秒钟事务量)
平均响应时间(ms)
2.2.4&测试性能数据对比
2.2.5&测试数据分析
1) 在低负载的情况下,并发线程数为5和和10个的时候,8.2.14和8.4.2性能差别不打,甚至可能表现得更好,
2) 一旦负载增大,8.2.14的性能同8.4.2相比就体现出来比较大的差距,(并发线程数为20的时候119.40 VS 150.35),8.4.2的性能高出25.9%
3、 测试总结
数据库性能的关键影响点是磁盘I/0性能
eCop默认采用的是8.2.x的版本,目前的数据库表容量在几十MB到500MB以内,根据不同机型和用户量,在CM1-4的机型可以配置如下参数:
shared_buffers = 256MB
work_mem = 10MB
effective_cache_size = 512MB
wal_buffers = 1024kB
checkpoint_segments = 32
CM5的机型可以配置为:
shared_buffers = 512MB
work_mem = 10MB
effective_cache_size = 1024MB
wal_buffers = 1024kB
checkpoint_segments = 32
把WAL日志放到独立的硬盘上。
在合适的时候可以考虑将数据库升级到8.4.2,目前发现的兼容性问题比较好解决,只有查询栏的查询时间上需要做一定的修改,其他地方都可以保持兼容。
阅读(...) 评论()966,690 七月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
MySQL与PostgreSQL:该选择哪个开源数据库?哪一个更好?
7&他的粉丝
日. 估计阅读时间:
不到一分钟
智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?!
Author Contacted
相关厂商内容
相关赞助商
CNUTCon全球运维技术大会,9月10日-9月11日,上海&光大会展中心大酒店,
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。

我要回帖

更多关于 骁龙653和625性能对比 的文章

 

随机推荐