不同参数下的PostgreSQL能测试.doc_第1页
不同参数下的PostgreSQL能测试.doc_第2页
不同参数下的PostgreSQL能测试.doc_第3页
不同参数下的PostgreSQL能测试.doc_第4页
不同参数下的PostgreSQL能测试.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

不同参数下的PostgreSQL性能测试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.12、 测试和数据2.1 TPC-B(Pgbench)2.1.1 测试方法通过执行PostgreSQL源码中自带的Pgbench来执行TPC-B测试。关于Pgbench的更多信息可以参见/mwiki/index.php?title=Pgbench测试参数:./pgbench -i -s 20 pgbench 将负载因子设定为20初始化数据库表容量:able # of rows-branches 20tellers 200accounts 2000000history 0数据库物理大小:数据库总大小288MB,其中表accounts 248MB每次事物执行的SQL语句:1. BEGIN;2. UPDATE accounts SET abalance = abalance + :delta WHERE aid = :aid;3. SELECT abalance FROM accounts WHERE aid = :aid;4. UPDATE tellers SET tbalance = tbalance + :delta WHERE tid = :tid;5. UPDATE branches SET bbalance = bbalance + :delta WHERE bid = :bid;6. INSERT INTO history (tid, bid, aid, delta, mtime) VALUES (:tid, :bid, :aid, :delta, CURRENT_TIMESTAMP);7. END;测试方法:./pgbench -t 2000 -c 20 -U postgres pgbench 模拟20个并发用户,每个用户执行2000次事务。每种配置参数执行三次,记录TPS值。2.1.2 测试结果(8.2.14)PostgreSQL 8.2.14的Pgbench测试结果(单位TPS/每秒钟事务数量)序号参数配置第一次第二次第三次平均值1默认参数4044084154092调整WAL日志参数wal_buffers = 1024kB (默认64kb)checkpoint_segments = 32 (默认3)8528958138533将WAL日志在放在第二块硬盘16731673165716674调整内存参数shared_buffers = 256MB(默认32MB)work_mem = 10MB(默认1M)effective_cache_size = 512MB(默认128M)23512375239023725调整内存参数shared_buffers = 512MBwork_mem = 10MBeffective_cache_size = 1024MB22642354235123236关闭WAL日志27612806281027922.1.3 测试结果(8.4.2)PostgreSQL 8.4.2的Pgbench测试结果(单位TPS/每秒钟事务数量)序号参数配置第一次第二次第三次平均值1默认参数4664704504622调整WAL日志参数wal_buffers = 1024kB (默认64kb)checkpoint_segments = 32 (默认3)checkpoint_completion_target=0.9(默认0.5)93994010649813*将WAL日志在放在第二块硬盘13641945137815624调整内存参数shared_buffers = 256MB(默认32MB)work_mem = 10MB(默认1M)effective_cache_size = 512MB(默认128M)23162341234123325调整内存参数shared_buffers = 512MBwork_mem = 10MBeffective_cache_size = 1024MB23192361237023506关闭WAL日志2800281328142809注*执行测试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 = 512MBwork_mem = 10MBeffective_cache_size = 1024MBfsync = on/off 打开/关闭WAL2.2.2 测试结果(8.2.14)PostgreSQL 8.2.14的TPC-C测试结果(关闭WAL)并发线程数TPS(每秒钟事务量)平均响应时间(ms)579.246310110.929015116.4312820119.401672.2.3 测试结果(8.4.2)PostgreSQL 8.4.2的TPC-C测试结果(关闭WAL)并发线程数TPS(每秒钟事务量)平均响应时间(ms)570.657010107.429315144.6610320150.35132PostgreSQL 8.4.2的TPC-C测试结果(开启WAL)并发线程数TPS(每秒钟事务量)平均响应时间(ms)562.987910116.468515125.3111920125.741582.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 = 256MBwork_mem = 10MBeffective_cache_size = 512MBwal_buffers = 1024kBcheckpoint_segments = 32CM5的机型可以配置为:shared_buffers = 512MBw

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论