设为首页 收藏本站
查看: 966|回复: 0

[经验分享] postgresql集群方案hot standby初级测试(二) ——处理数据能力

[复制链接]

尚未签到

发表于 2016-11-21 07:32:07 | 显示全部楼层 |阅读模式
  刚刚写完(一),本来想把两篇写在一起,但是发现关联不大,最后觉得分开写:
  
  本文来自:http://blog.csdn.net/lengzijian/article/details/7729465
  
  先写上数据库配置:
  一个主数据库,两个从数据库
  主数据库: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,NULL,(void *) thread,argv[2]);
/* 关闭数据库连接并清理 */
for(i=0;i<j;i++)
pthread_join(id,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

DSC0000.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-303113-1-1.html 上篇帖子: postgresql集群方案hot standby初级测试(三)——蛋疼测试——手动同步数据 下篇帖子: postgresql集群方案hot standby初级测试(一)——模拟集群状况
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表