postgresql集群方案hot standby初级测试(二) ——处理数据能力
先写上数据库配置:
一个主数据库,两个从数据库
主数据库:Intel(R) Pentium(R) D CPU 2.80GHz *2 | MemTotal: 1027072 kB
从库1 :Pentium(R) Dual-Core CPU E5200 @ 2.50GHz| MemTotal: 2066020 kB
从库2 :Pentium(R) Dual-Core CPU E5200 @ 2.50GHz| MemTotal: 2066020 kB
本人自己写了c语言的测试脚本,用到了libpq c库,这里附上源码:
- #include <stdio.h>
- #include <libpq-fe.h>
- #include <pthread.h>
- #include <sys/time.h>
- /*
- 首先创建一个简单的表只有userid和name
- CREATE TABLE t_user
- (
- userid character varying(25),
- name character varying(25)
- )
- */
- void thread(char *count){
- int i,j;
- const char *conninfo;
- char char_time[1024];
- PGresult *res;
- PGconn *conn;
- j = atoi(count);
- struct timeval tpstart,tpend;
- float timeuser;
- gettimeofday(&tpstart,NULL);
- //数据库配置(主机地址,用户名,端口,数据库名)
- conninfo = "hostaddr=192.168.30.150 user=postgres port=5433 dbname=lengzijian";
- conn = PQconnectdb(conninfo);
- for(i = 0;i<j;i++){
- sprintf(char_time,"insert into t_user values ('%d','lengzijian')",i);
- res = PQexec(conn, char_time);
- if(!res||PQresultStatus(res)!=PGRES_COMMAND_OK)
- {
- printf("insert failed:%s--[%d]\n",PQerrorMessage(conn),i);
- PQclear(res);
- }
- PQclear(res);
- }
- gettimeofday(&tpend,NULL);
- timeuser=1000000*(tpend.tv_sec-tpstart.tv_sec)+tpend.tv_usec-tpstart.tv_usec;
- timeuser /=1000000;
- //输出每个线程的运行时间,方便计算平均值
- printf("Used Time:%f\n",timeuser);
- PQfinish(conn);
- }
- //第一个变量表示线程数,第二个参数表示并发量(每个线程的插入测试)
- int main(int argc,char *argv[])
- {
- int i, j;
- j = atoi(argv[1]);
- pthread_t id[j];
- int ret;
- if(argc < 3){
- printf("Not enough arguments, exiting...");
- return -1;
- }
- for(i=0;i<j;i++)
- ret=pthread_create(&id[i],NULL,(void *) thread,argv[2]);
- /* 关闭数据库连接并清理 */
- for(i=0;i<j;i++)
- pthread_join(id[i],NULL);
- }
编译方法:
- gcc test.c -lpq #千万别忘了-lpq
使用方法:
- ./a.out 1 1000 #表示1个线程1000个插入操作
由于本人机器并非服务器,所以数据只用来参考,希望读者可以用上面的代码,测试服务器上主机后,发送给本人,本人不胜感激!!!!
直接上数据:
线程数量 |
每个线程插入次数 |
总时间(s) |
每秒处理次数 |
1 |
1000 |
0.684 |
1461.988304 |
1 |
10000 |
6.56 |
1524.390244 |
1 |
50000 |
33.008 |
1514.784295 |
1 |
100000 |
76.972 |
1299.173726 |
2 |
1000 |
0.83 |
2409.638554 |
2 |
10000 |
7.96 |
2512.562814 |
2 |
50000 |
41 |
2439.02439 |
2 |
100000 |
95.675 |
2090.410243 |
3 |
1000 |
1.15 |
2608.695652 |
3 |
10000 |
11.99 |
2502.085071 |
3 |
50000 |
70.98 |
2113.271344 |
3 |
100000 |
163.4 |
1835.985312 |
5 |
1000 |
1.22 |
4098.360656 |
5 |
10000 |
15.9 |
3144.654088 |
5 |
50000 |
82.9 |
3015.681544 |
5 |
100000 |
118.4034 |
4222.852386 |
10 |
1000 |
1.830302 |
5463.579234 |
10 |
10000 |
16.94417 |
5901.736326 |
10 |
50000 |
87.61617 |
5706.709487 |
10 |
100000 |
179.2664 |
5578.290561 |
本文转自h2内存数据库博客园博客,原文链接:http://www.cnblogs.com/h2-database/archive/2012/07/09/2583251.html,如需转载请自行联系原作者
postgresql集群方案hot standby初级测试(二) ——处理数据能力相关推荐
- postgresql集群方案hot standby 安装和测试
这两天正忙着研究postgresql,基本用法和其他数据库大同小异,先不自己讲解,今天主要想记录下postgresql的集群方案hot standby方式. 转载请注明:http://blog.csd ...
- Redis集群方案,Codis安装测试
Redis集群方案,Codis安装测试 1,关于豌豆荚开源的Codis Codis是豌豆荚使用Go和C语言开发.以代理的方式实现的一个Redis分布式集群解决方案,且完全兼容Twemproxy.Twe ...
- PostgreSQL集群方案-Postgres-XL
Postgres-XL 主机 系统 hostname 192.168.1.42 centos7 node1 GTM 192.168.1.43 centos7 node2 gtm_proxy.Coord ...
- PostgreSQL集群方案-citus
citus Citus基本上是Postgres,可以进行横向扩展.它是Postgres的扩展,可以在多台计算机的群集中分发数据和查询.作为扩展(而不是分支),Citus支持新的PostgreSQL版本 ...
- MySQL常用集群方案
了解 MySQL 集群之前,先看看单节点数据库的弊病: 大型互联网程序用户群体庞大,所以架构需要特殊设计. 单节点数据库无法满足大并发时性能上的要求. 单节点的数据库没有冗余设计,无法满足高可用. 单 ...
- PostgreSQL高可用性、负载均衡、复制与集群方案介绍
目录[-] 一.高可用性.负载均衡.复制的几个方案比较: 二.多节点集群方案比较 9.3官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/high- ...
- PostgreSQL学习总结(11)—— PostgreSQL 常用的高可用集群方案
前言 PostgreSQL 本身不支持任何多主群集解决方案,例如 MySQL 或 Oracle.尽管如此,仍有许多商业和社区产品提供此实现,以及其他产品,例如 PostgreSQL 的复制或负载平衡. ...
- 在 Kubernetes 上快速测试 Citus 分布式 PostgreSQL 集群(分布式表,共置,引用表,列存储)...
准备工作 这里假设,你已经在 k8s 上部署好了基于 Citus 扩展的分布式 PostgreSQL 集群. 查看 Citus 集群(kubectl get po -n citus),1 个 Coor ...
- Greenplum集群Master与Standby相互切换
Greenplum集群Master与Standby相互切换 1 概述 1 2 查看集群的基本信息 2 2.1 查看集群的配置信息 2 2.2 快速查看down segments节点 2 2.3 查看M ...
最新文章
- 深度学习之自编码器AutoEncoder
- L4,C16:差1墩,从张数最多的套上去找
- 百度地图API禁用点击景点弹出详细信息的方法
- centos mysql 新增用户
- python函数返回布尔值_python-3.x - 函数不返回正确的布尔值 - SO中文参考 - www.soinside.com...
- redhat升级linux内核,用rpm方式升级RHEL6.1内核
- html怎么隐藏y方向内容,如何隐藏scroll-Y纵向滚动条,并不影响内容滚动的方法...
- 03-30 兼容性测试
- 用asp.net获取服务器和客服端有关信息
- java 小数精度问题
- python在屏幕上画画,屏幕上的Python绘图
- 从事游戏开发怎么入门
- 基于crontab的服务器恶意程序
- bootstrap搜索图标的使用
- 16 - 12 - 20 KMP算法 模式匹配 终极奥义!
- mysql存储过程 outfile_mysql存储过程 outfile
- 一个强悍而优美的Android视频播放器
- 全国联动css,CSS3 齿轮啮合联动动画
- 初学verilog必看
- 内马尔成为e.GO全球品牌大使;小马智行与如祺出行战略合作 | 美通企业日报
热门文章
- 数据库管理之数据表管理(1)
- 软件设计师 --哈夫曼树的一个经典问题
- Windows系统上3种连接Docker虚拟机的方法
- webform中提交按钮同时执行更新和插入操作_软件测试中的功能测试点(三)
- 疲劳驾驶监测方案_【Nano Energy】TENG用于驾驶员驾驶状态监测
- ubuntu 破解mysql密码_Ubuntu下忘记MySQL root密码解决方法
- tablednd保存 php,JQuery-tableDnD 拖拽的基本使用介绍
- 这些数据分析方法你都掌握了么
- 面试题,产品经理岗位的哪些特点最吸引你?
- 互联网日报 | TikTok将开启Pre-IPO融资;菜鸟裹裹战略再升级;滴滴中国西区总部落户重庆江北...