PostgreSQL 8.3的新功能[HOT](五)(簡體)
更新:2007-04-17
對映章節:
【PostgreSQLウォッチ】第35回 性能を大幅に改善するPostgreSQL 8.3の新機能「HOT」とは
pgpool-II的柔韧性(scalability)
改变话题,讲一下pgpool-II的节点柔韧性。pgpool-II是向PostgreSQL中增加连接池(connection pooling)和复制(replication)功能的pgpool的后继项目,是针对可以运行并发检索的大型DB的中间软件(middleware),以open-source形式公开。
关于pgpool-II的并发检索效果可以在下边的文档中找到benchmark结果:
http://www.sraoss.co.jp/event_seminar/2006/pgpool-2_intro.pdf(日文)
可以看到9节点与单独的PostgreSQL相比性能提高9-18倍,但是并没有节点数与性能的关系(scalability)。本次在日立制作所的协助下,取得了1到9个节点会引起怎样的性能变化数据,报告如下:
硬件:BladeSymphony BS320 (10台)
CPU: Intel Xeon5110 1.6GHz 2way(4core)
内存: 4G
硬盘: SATA 73GB×2
pgpool-II的版本: 1.0.2
PostgreSQL的版本: 各节点都是8.2.3
测试数据: 使用pgbench -i -s 900生成
系统构成图(图中日文 ノード:node,节点):
采用的机器是刀片服务器(Blade Server),其中一台运行pgpool-II和benchmark工具pgbench,其余9台运行PostgreSQL数据库。
使用pgbench生成9千万条数据,在各节点中分散放置,比如:一个节点时每节点9千万数据,3个节点时每节点3千万数据······9个节点时每个节点1千万数据。
测试中使用下边这样的SQL语句:
SELECT abalance FROM accounts WHERE aid = 值
“值”采用1到9千万之间的一个随机数。
结果图示(同時接続数:并发连接数):
纵轴是TPS(Transaction Per Second),数值越大表示性能越好。横轴是并发连接数,概略表示数据库负荷。
节点数从1开始增加,可以看出性能得到急剧提高。比较16个并发连接时的情况,1个节点具有380TPS而4个节点具有19033TPS,实际性能提高50倍以上。不要期待节点数能够成比例的增加性能,数据分散放置各节点中的数据量减少,缓存能够更有效的工作才是性能提高的主要原因。
但是5个节点以上性能就慢慢降了下来,一般认为这是pgpool-II的overhead造成的。
To be continued ...
延伸閱讀(Link):
http://pgpool.projects.postgresql.org/pgpool-II/en/
沒有留言:
張貼留言